diff --git a/hosts/dumpyourvms/dumpyourvms.nix b/hosts/dumpyourvms/dumpyourvms.nix index b14880ab..846232d1 100644 --- a/hosts/dumpyourvms/dumpyourvms.nix +++ b/hosts/dumpyourvms/dumpyourvms.nix @@ -91,6 +91,31 @@ in ExecStop = "${pkgs.bash}/bin/sh -c 'echo ON >/sys/kernel/debug/vgaswitcheroo/switch'"; }; wantedBy = [ "multi-user.target" ]; + + systemd.user.services."battery-low" = { + enable = true; + description = "Notify user if battery is below 13%"; + partOf = ["graphical-session.target"]; + wantedBy = ["graphical-session.target"]; + serviceConfig = { + Type = "simple"; + ExecStart = lib.getExe (pkgs.writeShellApplication { + name = "battery-low-notification"; + text = '' + if [ "$(${pkgs.coreutils}/bin/cat /sys/class/power_supply/BAT0/status)" != "Charging" ] && (( 13 >= $(${pkgs.coreutils}/bin/cat /sys/class/power_supply/BAT0/capacity) )); + then ${pkgs.lib.getExe pkgs.libnotify} --urgency=critical "low battery" "$(${pkgs.coreutils}/bin/cat /sys/class/power_supply/BAT0/capacity)"; + else echo; fi; + ''; + }); + }; + }; + systemd.user.timers."battery-low" = { + wantedBy = ["timers.target"]; + timerConfig = { + # Every Minute + OnCalendar = "*-*-* *:0/3"; + Unit = "battery-low.service"; + }; }; # Increase console font size for HiDPI display