flake/home/applications/swayidle/default.nix

48 lines
1 KiB
Nix
Raw Normal View History

{
pkgs,
lib,
2023-12-07 06:49:38 +00:00
config,
...
}: {
imports = [
2023-11-28 05:40:22 +00:00
../swaylock
];
2023-12-07 06:49:38 +00:00
services.swayidle = let
lock = lib.getExe config.programs.swaylock.package;
brightness = lib.getExe pkgs.brightnessctl;
2023-12-07 06:49:38 +00:00
in {
enable = true;
timeouts = [
{
timeout = 60 * 9;
command = "${brightness} set $(($(${brightness} get)/4))";
resumeCommand = "${brightness} set $(($(${brightness} get)*4))";
} # dim screen
2023-12-07 06:49:38 +00:00
{
timeout = 60 * 10;
command = lock;
} # lock screen
{
timeout = 60 * 20;
command = ''${pkgs.sway}/bin/swaymsg "output * power off"'';
resumeCommand = ''${pkgs.sway}/bin/swaymsg "output * power on"'';
2023-12-07 06:49:38 +00:00
} # turn off screen
{
timeout = 60 * 30;
command = "systemctl suspend";
} # suspend
];
events = [
{
event = "lock";
command = lock;
} # loginctl lock-session
{
event = "before-sleep";
command = lock;
} # systemctl suspend
];
2023-11-05 12:50:08 +00:00
};
}