My NixOS dotfiles
0

Configure Feed

Select the types of activity you want to include in your feed.

๐Ÿ› Real fix of the battery script

Simon R. - fantomitechno (May 28, 2026, 9:07 AM +0200) 6672ef05 9f792ad0

+16 -3
+16 -3
hosts/common/battery-notify.nix
··· 9 9 serviceConfig = { 10 10 Type = "simple"; 11 11 ExecStart = pkgs.writeShellScript "battery-low-notification" '' 12 - BATTERY=$(${pkgs.lib.getExe pkgs.acpi} -b | head -n 1) 13 - LEVEL=$(echo "$BATTERY" | ${pkgs.lib.getExe pkgs.ripgrep} -o "\d+%" | ${pkgs.lib.getExe pkgs.ripgrep} -o "\d+") 12 + BATTERIES=$(${pkgs.lib.getExe pkgs.acpi} -b) 13 + LEVEL=200 14 + N=$(echo "$BATTERIES" | wc -l) 15 + for ((i = 1 ; i <= N ; i++)); do 16 + BATTERY=$(echo "$BATTERIES" | sed -n "''${i}p") 17 + if echo "$BATTERY" | grep -q "rate information unavailable"; then 18 + echo "Skipping: $BATTERY" 19 + else 20 + NEW_LEVEL=$(echo "$BATTERY" | ${pkgs.lib.getExe pkgs.ripgrep} -o "\d+%" | ${pkgs.lib.getExe pkgs.ripgrep} -o "\d+") 21 + if ((NEW_LEVEL < LEVEL)); then 22 + LEVEL=$NEW_LEVEL 23 + fi 24 + fi 25 + done 26 + echo "$LEVEL" 14 27 if echo "$BATTERY" | ${pkgs.lib.getExe pkgs.ripgrep} -q "Discharging" && (( 10 >= LEVEL )); then 15 - ${pkgs.lib.getExe pkgs.libnotify} --urgency=critical "low battery" "$LEVEL%" 28 + ${pkgs.lib.getExe pkgs.libnotify} --urgency=critical "low battery" "$LEVEL%" 16 29 fi 17 30 ''; 18 31 };