{ config, lib, pkgs, ... }: { options.custom = { hypridle.enable = lib.mkEnableOption "enable hypridle - screen lock"; }; config = lib.mkIf config.custom.hypridle.enable { services.hypridle = { enable = true; settings = { general = { lock_cmd = "pidof hyprlock || hyprlock"; before_sleep_cmd = "loginctl lock-session"; after_sleep_cmd = "hyprctl dispatch dpms on"; }; listener = [ { timeout = 600; on-timeout = "loginctl lock-session"; } { timeout = 660; on-timeout = "hyprctl dispatch dpms off"; on-resume = "hyprctl dispatch dpms on"; } { timeout = 1800; on-timeout = "systemctl suspend"; } ]; }; }; }; }