diff --git a/home-modules/hyprland.nix b/home-modules/hyprland.nix index 8da7b35..0a13072 100644 --- a/home-modules/hyprland.nix +++ b/home-modules/hyprland.nix @@ -30,6 +30,33 @@ }; }; }; + # TODO: Move to its own module. + services.hypridle = { + enable = true; + settings = { + general = { + lock_cmd = "pidof hyprlock || hyprlock"; # Avoid starting hyprlock multiple times. + before_sleep_cmd = "loginctl lock-session"; # lock before suspend. + after_sleep_cmd = "hyprctl dispatch dpms on"; # to avoid having to press a key twice to turn on the display. + }; + listener = [ + { + timeout = 150; # 2.5min. + on-timeout = "brightnessctl -s set 10"; # set monitor backlight to minimum, avoid 0 on OLED monitor. + on-resume = "brightnessctl -r"; # monitor backlight restore. + } + { + timeout = 300; # 5min. + on-timeout = "loginctl lock-session"; # lock screen when timeout has passed. + } + { + timeout = 330; # 5.5min + on-timeout = "hyprctl dispatch dpms off"; # screen off when timeout has passed + on-resume = "hyprctl dispatch dpms on && brightnessctl -r"; # screen on when activity is detected after timeout has fired. + } + ]; + }; + }; # TODO: Move swaync to its own module if it ever gets more complex than just enalbement. services.swaync.enable = true; wayland.windowManager.hyprland.enable = true;