45 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
{inputs, pkgs, ...}:
 | 
						|
{
 | 
						|
  services.hypridle = {
 | 
						|
    enable = true;
 | 
						|
    settings = {
 | 
						|
      general = {
 | 
						|
        # See: https://github.com/hyprwm/hypridle/issues/146
 | 
						|
        before_sleep_cmd = "hyprlock --no-fade-in";
 | 
						|
        lock_cmd = "hyprlock";
 | 
						|
        after_sleep_cmd = "hyprctl dispatch dpms on";
 | 
						|
        ignore_dbus_inhibit = false;
 | 
						|
      };
 | 
						|
 | 
						|
      listener = [
 | 
						|
        {
 | 
						|
          # turn off keyboard backlight after 20 seconds
 | 
						|
          timeout = 10;
 | 
						|
          on-timeout = "brightnessctl -d platform::kbd_backlight -s set 0";
 | 
						|
          # restore keyboard backlight on resume to previous level.
 | 
						|
          on-resume = "brightnessctl -d platform::kbd_backlight -r";
 | 
						|
        }
 | 
						|
        {
 | 
						|
          # dim screen after 2 minutes
 | 
						|
          timeout = 120;
 | 
						|
          on-timeout = "brightnessctl -s set 2%";
 | 
						|
          on-resume = "brightnessctl -r";
 | 
						|
          # monitor backlight restore.
 | 
						|
        }
 | 
						|
        {
 | 
						|
          # lock screen after 10 minutes
 | 
						|
          timeout = 600;
 | 
						|
          on-timeout = "loginctl lock-session && hyprctl dispatch dpms off";
 | 
						|
          on-resume = "hyprctl dispatch dpms on";
 | 
						|
        }
 | 
						|
        {
 | 
						|
          # suspend after 15 minutes
 | 
						|
          timeout = 900;
 | 
						|
          on-timeout = "systemctl suspend";
 | 
						|
          on-resume = "hyprctl dispatch dpms on";
 | 
						|
        }
 | 
						|
      ];
 | 
						|
    };
 | 
						|
  };
 | 
						|
}
 |