59 lines
2.5 KiB
Nix
59 lines
2.5 KiB
Nix
|
{ 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
|
||
|
''
|