36 lines
1 KiB
Nix
36 lines
1 KiB
Nix
{
|
|
pkgs,
|
|
psCfg,
|
|
...
|
|
}: {
|
|
Unit = {
|
|
Description = "Idle manager for Wayland";
|
|
Documentation = ["man:swayidle(1)"];
|
|
BindsTo = ["graphical-session.target"];
|
|
Wants = ["graphical-session-pre.target"];
|
|
After = ["graphical-session-pre.target"];
|
|
};
|
|
Service = {
|
|
Type = "simple";
|
|
Environment = "PATH=/run/current-system/sw/bin:${pkgs.sway}/bin:${pkgs.swaylock-bg}/bin:${pkgs.swayidle}/bin";
|
|
ExecStart =
|
|
'' ${pkgs.swayidle}/bin/swayidle -w \
|
|
after-resume 'swaymsg "output * dpms on"' \
|
|
before-sleep 'swaylock-bg' ''
|
|
+ (
|
|
if psCfg.paranoia.enable
|
|
then '' \
|
|
timeout 120 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on"' \
|
|
timeout 150 'systemctl hibernate'
|
|
''
|
|
else '' \
|
|
timeout 600 'swaylock-bg' \
|
|
timeout 900 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on"'
|
|
''
|
|
);
|
|
};
|
|
Install = {
|
|
WantedBy = ["sway-session.target"];
|
|
};
|
|
}
|