let # Time in seconds lockAfter = 1200; screenOffAfter = 1500; suspendAfter = 7200; in { services.hypridle = { enable = true; settings = { general = { before_sleep_cmd = "loginctl lock-session"; after_sleep_cmd = "hyprctl dispatch dpms on"; lock_cmd = "pidof hyprlock || hyprlock"; # Avoid running multiple instances of hyprlock }; listener = [ # Lock { timeout = lockAfter; on-timeout = "loginctl lock-session"; } # Turn off screens { timeout = screenOffAfter; on-timeout = "hyprctl dispatch dpms off"; on-resume = "hyprctl dispatch dpms on"; } # Suspend { timeout = suspendAfter; on-timeout = "systemctl suspend"; # suspend pc } ]; }; }; }