summaryrefslogtreecommitdiffstats
path: root/hypridle.nix
blob: 4747411e14c82290490cf5701337e193eabb5797 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
{ config, pkgs, ... }:

{
	services.hypridle = {
		enable = true;
		settings = {
		general = {
		    lock_cmd = "pidof hyprlock || hyprlock";      # avoid starting multiple hyprlock instances.
		    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.
		}
		{
		# turn off keyboard backlight, comment out this section if you dont have a keyboard backlight.
		    timeout = 150;                                          # 2.5min.
		    on-timeout = "brightnessctl -sd rgb:kbd_backlight set 0"; # turn off keyboard backlight.
		    on-resume = "brightnessctl -rd rgb:kbd_backlight";        # turn on keyboard backlight.
		}
		{
		    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.
		}

		{
		    timeout = 1800;                                # 30min
		    on-timeout = "systemctl suspend";                # suspend pc
		}		
		];
		};
};
}