{pkgs, lib, super-config, ...}: { services.hyprpolkitagent.enable = true; programs.hyprlock.enable = true; services.hypridle = lib.optionals (super-config.enableHypridle == true) { enable = true; settings = let idle_timeout = "300"; # 5 minutes screen_timeout = "600"; # 10 minutes suspend_timeout = "900"; # 10 minutes lock_cmd = "${pkgs.procps}/bin/pidof hyprlock || ${pkgs.hyprlock}/bin/hyprlock"; suspend_cmd = "systemctl suspend"; in{ general = { inherit lock_cmd; before_sleep_cmd = "loginctl lock-session"; }; listener = [ { timeout = idle_timeout; on-timeout = "loginctl lock-session"; } { timeout = screen_timeout; on-timeout = "{pkgs.sway}/bin/swaymsg 'output * dpms off'"; on-resume = "{pkgs.sway}/bin/swaymsg 'output * dpms on'"; } { timeout = suspend_timeout; on-timeout = suspend_cmd; } ]; }; }; home.packages = with pkgs; [ hyprlock ] ++ (lib.optionals (super-config.enableHypridle == true) [ hypridle ]); xdg.configFile."hypr/hyprlock.conf" = { source = "${pkgs.dotfiles}/.config/hypr/hyprlock.conf"; }; }