{inputs, pkgs, ...}: { services.hypridle = { enable = true; settings = { general = { # See: https://github.com/hyprwm/hypridle/issues/146 before_sleep_cmd = "hyprlock --no-fade-in"; lock_cmd = "hyprlock"; after_sleep_cmd = "hyprctl dispatch dpms on"; ignore_dbus_inhibit = false; }; listener = [ { # turn off keyboard backlight after 20 seconds timeout = 10; on-timeout = "brightnessctl -d platform::kbd_backlight -s set 0"; # restore keyboard backlight on resume to previous level. on-resume = "brightnessctl -d platform::kbd_backlight -r"; } { # dim screen after 2 minutes timeout = 120; on-timeout = "brightnessctl -s set 2%"; on-resume = "brightnessctl -r"; # monitor backlight restore. } { # lock screen after 10 minutes timeout = 600; on-timeout = "loginctl lock-session && hyprctl dispatch dpms off"; on-resume = "hyprctl dispatch dpms on"; } { # suspend after 15 minutes timeout = 900; on-timeout = "systemctl suspend"; on-resume = "hyprctl dispatch dpms on"; } ]; }; }; }