Added battery notify (currently don't work)

I'm fighting with udev to get it work properly.
This commit is contained in:
James Patrick 2022-04-24 22:24:53 -04:00
parent b28d614193
commit 3433f4a7e2
3 changed files with 60 additions and 1 deletions

View File

@ -13,6 +13,6 @@ in with lib; {
powerManagement.powertop.enable = true; powerManagement.powertop.enable = true;
services.upower.enable = true; services.upower.enable = true;
environment.systemPackages = with pkgs; [ powertop ]; environment.systemPackages = with pkgs; [ powertop tpacpi-bat ];
}; };
} }

58
pkgs/battery-notify.nix Normal file
View File

@ -0,0 +1,58 @@
{ pkgs, ... }:
let
xpub = pkgs.fetchurl {
url =
"https://raw.githubusercontent.com/Ventto/xpub/f2eadaaf9c8539abbd46b23c0b2f6d93d2ebd658/src/xpub.sh";
sha256 = "sha256-88t9lr6DxrWrg6E4YsWGzYV9/GbRgwLafAklXHObqsI=";
executable = true;
};
in pkgs.writeShellScriptBin "battery-notify" ''
#!${pkgs.bash}/bin/bash
# ''${DISPLAY:=":0"}
#: $\{XUSER:=":james"\}
touch /tmp/battery-notify
echo "display:$DISPLAY" >> /tmp/battery-notify
echo "tty:$TTY" >> /tmp/battery-notify
echo "XUSER:$XUSER" >> /tmp/battery-notify
echo "DBUS_SESSION_BUS_ADDRESS:$DBUS_SESSION_BUS_ADDRESS" >> /tmp/battery-notify
export $(${xpub}) ;
function last_chance {
if [ -f /tmp/last_chance ] ; then
echo "There already exist another processing doing this. Aborting."
exit
else
${pkgs.coreutils}/bin/touch /tmp/last_chance
fi
countdown=30
while [[ $(${pkgs.coreutils}/bin/cat /sys/class/power_supply/AC/online) -eq 0 ]] ; do
if [[ countdown -gt 0 ]] ; then
${pkgs.libnotify}/bin/notify-send -h string:x-canonical-private-synchronous:battery -u critical " Critical Battery - Suspension imminent." "You have $countdown seconds." ; sleep 1
let "countdown=countdown-1"
else
${pkgs.libnotify}/bin/notify-send -h string:x-canonical-private-synchronous:battery -u low " Critical Battery" "PlaceHolder"
break;
fi
done
${pkgs.coreutils}/bin/rm /tmp/last_chance
}
case $1 in
charging)
${pkgs.libnotify}/bin/notify-send -h string:x-canonical-private-synchronous:battery -u low " Power Connected" "Battery at $(${pkgs.coreutils}/bin/cat /sys/class/power_supply/BAT0/capacity)%";;
discharging)
${pkgs.libnotify}/bin/notify-send -h string:x-canonical-private-synchronous:battery -u low " Power Disconnected" "Battery at $(${pkgs.coreutils}/bin/cat /sys/class/power_supply/BAT0/capacity)%";;
warn)
${pkgs.libnotify}/bin/notify-send -h string:x-canonical-private-synchronous:battery -u normal " Discharging" "Battery at $(${pkgs.coreutils}/bin/cat /sys/class/power_supply/BAT0/capacity)%";;
danger)
${pkgs.libnotify}/bin/notify-send -h string:x-canonical-private-synchronous:battery -u critical " Low Battery" "Battery at $(${pkgs.coreutils}/bin/cat /sys/class/power_supply/BAT0/capacity)%. Will suspend soon.";;
ohfuck)
last_chance ;;
*)
echo "invalid command" ;;
esac
''

View File

@ -1,5 +1,6 @@
self: super: { self: super: {
brightness-sh = super.callPackage ./brightness.nix { inherit super; }; brightness-sh = super.callPackage ./brightness.nix { inherit super; };
battery-notify = super.callPackage ./battery-notify.nix { inherit super; };
sway-entry = super.callPackage ./sway-entry.nix { inherit super; }; sway-entry = super.callPackage ./sway-entry.nix { inherit super; };
volume-sh = super.callPackage ./volume.nix { inherit super; }; volume-sh = super.callPackage ./volume.nix { inherit super; };
} }