home: swayidle: refactor

This commit is contained in:
Guanran Wang 2023-12-07 14:49:38 +08:00
parent 3aede98bd9
commit 1945d5aea6
Signed by: nyancat
SSH key fingerprint: SHA256:8oWGKciPALWut/6WA27oFKofX+6Wtc0gQnsefXLQx/8

View file

@ -1,40 +1,47 @@
{
pkgs,
lib,
config,
...
}: {
imports = [
../swaylock
];
services = {
swayidle = {
services.swayidle = let
lock = lib.getExe config.programs.swaylock.package;
displayOn = ''${pkgs.sway}/bin/swaymsg "output * power on"'';
displayOff = ''${pkgs.sway}/bin/swaymsg "output * power off"'';
in {
enable = true;
timeouts = [
{
timeout = 900;
command = lib.getExe pkgs.swaylock-effects;
timeout = 60 * 9;
command = ''${pkgs.libnotify}/bin/notify-send -u critical --expire-time 60000 "60 seconds until lock!"'';
}
{
timeout = 60 * 10;
command = lock;
} # lock screen
{
timeout = 905;
command = "${pkgs.sway}/bin/swaymsg \"output * dpms off\"";
resumeCommand = "${pkgs.sway}/bin/swaymsg \"output * dpms on\"";
timeout = 60 * 20;
command = displayOff;
resumeCommand = displayOn;
} # turn off screen
{
timeout = 1200;
command = ''systemctl suspend'';
timeout = 60 * 30;
command = "systemctl suspend";
} # suspend
];
events = [
{
event = "lock";
command = lib.getExe pkgs.swaylock-effects;
command = lock;
} # loginctl lock-session
{
event = "before-sleep";
command = lib.getExe pkgs.swaylock-effects;
} # systemctl syspend
command = lock;
} # systemctl suspend
];
};
};
}