change my keyboard backlight depending on the battery lvl

Former-commit-id: 2cfc92bca1
This commit is contained in:
Hadi
2025-04-18 10:18:21 +02:00
parent 31e03a7fb8
commit 6b43b76880
2 changed files with 33 additions and 0 deletions

View File

@@ -16,6 +16,7 @@ in {
./animations.nix
./bindings.nix
./polkitagent.nix
./keyboard-backlight.nix # CHANGEME: This is for my laptop only
# FIXME: Broken on unstable
# ./hyprspace.nix
];

View File

@@ -0,0 +1,32 @@
# Turn the keyboard red/off when the battery is low
{ pkgs, config, ... }:
let
keyboard-backlight = pkgs.writeShellScriptBin "keyboard-backlight" ''
function set_keyboard_backlight {
local color=$1
echo $color > /sys/devices/platform/hp-wmi/rgb_zones/zone00
echo $color > /sys/devices/platform/hp-wmi/rgb_zones/zone01
echo $color > /sys/devices/platform/hp-wmi/rgb_zones/zone02
echo $color > /sys/devices/platform/hp-wmi/rgb_zones/zone03
}
state="white"
while true; do
BATTERY_LEVEL=$(cat /sys/class/power_supply/BAT*/capacity)
if [[ $BATTERY_LEVEL -le 10 ]]; then
if [[ $state == "red" ]];then
state="white"
set_keyboard_backlight "000000"
else
state="red"
set_keyboard_backlight "FF0000"
fi
else
state="white"
set_keyboard_backlight ${config.lib.stylix.colors.base0D}
fi
sleep 2
done
'';
in {
wayland.windowManager.hyprland.settings.exec-once = [ keyboard-backlight ];
}