nixos-config/config/programs/swayidle.nix

53 lines
1.2 KiB
Nix
Raw Normal View History

2022-06-12 15:39:15 +00:00
{pkgs, ...}: let
lock-script = pkgs.writeScript "suspend" ''
${pkgs.swaylock}/bin/swaylock -f -c 000000
${pkgs.mpc-cli}/bin/mpc pause
'';
screen-off-script = pkgs.writeScript "screenOff" ''
${pkgs.sway}/bin/swaymsg "output * dpms off"
'';
suspend-script = pkgs.writeScript "suspend" ''
${pkgs.systemd}/bin/systemctl suspend
'';
resume-script = pkgs.writeScript "resume" ''
${pkgs.sway}/bin/swaymsg "output * dpms on"
'';
unlock-script = pkgs.writeScript "unlock" ''
${pkgs.procps}/bin/pkill swaylock
${pkgs.mpc-cli}/bin/mpc play
'';
2022-06-12 15:39:15 +00:00
in {
2023-01-01 11:44:43 +00:00
services.swayidle = {
enable = true;
events = [
2023-01-01 13:28:25 +00:00
{
event = "before-sleep";
command = "${lock-script}";
}
{
event = "lock";
command = "${lock-script}";
}
{
event = "unlock";
command = "${unlock-script}";
}
2023-01-01 11:44:43 +00:00
];
timeouts = [
2023-01-01 13:28:25 +00:00
{
timeout = 300;
command = "${lock-script}";
}
{
timeout = 305;
command = "${screen-off-script}";
2023-01-01 13:38:29 +00:00
resumeCommand = "${resume-script}";
2023-01-01 13:28:25 +00:00
}
{
timeout = 900;
command = "${suspend-script}";
}
2023-01-01 11:44:43 +00:00
];
};
}