{ config, lib, pkgs, ... }: lib.mkIf (config.nomarchy.formFactor == "laptop") { systemd.user.services.nomarchy-battery-monitor = { Unit = { Description = "Nomarchy Battery Monitor Check"; After = [ "graphical-session.target" ]; # Belt-and-braces: even on a laptop generation, skip if the kernel # hasn't surfaced a battery yet (e.g. early boot, removable battery). ConditionPathExistsGlob = "/sys/class/power_supply/BAT*"; }; Service = { Type = "oneshot"; # The script is packaged in nomarchy-scripts which is in the home profile ExecStart = "nomarchy-battery-monitor"; Environment = [ "DISPLAY=:0" ]; LogLevelMax = "warning"; }; }; systemd.user.timers.nomarchy-battery-monitor = { Unit = { Description = "Nomarchy Battery Monitor Timer"; ConditionPathExistsGlob = "/sys/class/power_supply/BAT*"; }; Timer = { OnBootSec = "1min"; OnUnitActiveSec = "30sec"; AccuracySec = "10sec"; }; Install = { WantedBy = [ "timers.target" ]; }; }; }