nixos-config/config/programs/swayidle.nix

34 lines
1 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 = [
{ event = "before-sleep"; command = "${lock-script}"; }
{ event = "lock"; command = "${lock-script}"; }
{ event = "unlock"; command = "${unlock-script}"; }
];
timeouts = [
{ timeout = 300; command = "${lock-script}"; }
{ timeout = 305; command = "${screen-off-script}"; resume = "${resume-script}"; }
{ timeout = 900; command = "${suspend-script}"; }
];
};
}