diff --git a/modules/desktop/hypridle.nix b/modules/desktop/hypridle.nix index 49bd7fb..1d79489 100644 --- a/modules/desktop/hypridle.nix +++ b/modules/desktop/hypridle.nix @@ -14,18 +14,24 @@ in { }; config = mkIf cfg.enable { - hm.services.hypridle = { + hm.services.hypridle = let + hyprctl = "${config.modules.desktop.hyprland.package}/bin/hyprctl"; + in { enable = true; package = cfg.package; lockCmd = "${pkgs.procps}/bin/pidof hyprlock || ${lib.getExe config.modules.desktop.hyprlock.package}"; unlockCmd = "${pkgs.procps}/bin/pkill -USR1 hyprlock"; - beforeSleepCmd = "${pkgs.systemd}/bin/loginctl lock-session"; + beforeSleepCmd = "${pkgs.systemd}/bin/loginctl lock-session"; # lock the screen before sleeping + afterSleepCmd = "${hyprctl} dispatch dpms on"; # turn on the screen to avoid moving mouse/pressing key - listeners = let - hyprctl = "${config.modules.desktop.hyprland.package}/bin/hyprctl"; - in [ + listeners = [ + { + timeout = 60 * 1; + onTimeout = "${lib.getExe pkgs.brightnessctl} -c backlight -s set 20"; # dim screen, save brightness state + onResume = "${lib.getExe pkgs.brightnessctl} -c backlight -r"; # restore previous screen brightness state + } { timeout = 90; # 1.5 min onTimeout = "${hyprctl} dispatch dpms off"; # turn off screen @@ -36,7 +42,7 @@ in { onTimeout = "${pkgs.systemd}/bin/loginctl lock-session"; # lock computer } { - timeout = 60 * 30; # 30 min + timeout = 60 * 15; # 15 min onTimeout = "${pkgs.systemd}/bin/systemctl suspend"; # sleep/suspend } ];