{ config, lib, pkgs, ... }: { options.zpha.services.batsignal.enable = lib.mkEnableOption "batsignal"; config = lib.mkIf config.zpha.services.batsignal.enable { users.users.zaphyra.maid = { systemd.services.batsignal = { description = "batsignal - battery monitor daemon"; after = [ "niri-session.target" ]; partOf = [ "niri-session.target" ]; wantedBy = [ "niri-session.target" ]; serviceConfig = { Restart = "on-failure"; ExecStart = let args = [ # expire notifications "-e" # show message when battery begins charging/discharging "-p" # minimum number of SECONDS to wait between battery checks "-m10" # bat levels "-w20" "-c10" "-d5" "-D" "systemctl suspend" ]; in "${lib.getExe pkgs.batsignal} ${lib.escapeShellArgs args}"; }; }; }; }; }