2024-02-20 21:16:07 +01:00
---
weight: 3
title: hypridle
---
2024-02-19 17:52:58 +01:00
2024-04-21 16:35:48 +02:00
hypridle is Hyprland's idle management daemon.
2024-02-19 17:52:58 +01:00
## Configuration
2024-02-20 21:16:07 +01:00
Configuration is done via the config file at `~/.config/hypr/hypridle.conf` . A
config file is required; hypridle won't run without one. To run hypridle at
2024-11-11 15:53:20 +01:00
startup, edit `hyprland.conf` and add: `exec-once = hypridle` . If Hyprland is started with [uwsm ](../../Systemd-start ), you can use `systemctl --user enable --now hypridle.service` .
2024-02-19 17:52:58 +01:00
### General
Variables in the `general` category:
| variable | description | type | default |
2024-02-20 21:16:07 +01:00
| --- | --- | --- | --- |
2024-02-19 17:52:58 +01:00
| lock_cmd | command to run when receiving a dbus lock event (e.g. `loginctl lock-session` ) | string | empty |
| unlock_cmd | command to run when receiving a dbus unlock event (e.g. `loginctl unlock-session` ) | string | empty |
| before_sleep_cmd | command to run when receiving a dbus prepare_sleep event | string | empty |
| after_sleep_cmd | command to run when receiving a dbus post prepare_sleep event | string | empty |
| ignore_dbus_inhibit | whether to ignore dbus-sent idle inhibit events (e.g. from firefox) | bool | false |
2024-08-29 00:48:20 +02:00
| ignore_systemd_inhibit | whether to ignore `systemd-inhibit --what=idle` inhibitors | bool | false |
2024-02-19 17:52:58 +01:00
### Listeners
Hypridle uses listeners to define actions on idleness.
2024-02-20 21:16:07 +01:00
Every listener has a _timeout_ (in seconds). After idling for _timeout_ seconds,
`on-timeout` will fire. When action is resumed after idle, `on-resume` will
fire.
2024-02-19 17:52:58 +01:00
Example listener:
```ini
listener {
2024-03-04 20:30:00 +01:00
timeout = 500 # in seconds.
on-timeout = notify-send "You are idle!" # command to run when timeout has passed.
2024-02-19 17:52:58 +01:00
on-resume = notify-send "Welcome back!" # command to run when activity is detected after timeout has fired.
}
```
2024-03-02 00:20:27 +01:00
You can define as many listeners as you want.
2024-03-04 20:30:00 +01:00
Full hypridle example with hyprlock:
2024-03-02 00:20:27 +01:00
```ini
2024-03-04 20:30:00 +01:00
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.
2024-03-31 13:27:41 +02:00
on-resume = brightnessctl -r # monitor backlight restore.
2024-03-04 20:30:00 +01:00
}
2024-03-25 15:19:15 +01:00
# turn off keyboard backlight, comment out this section if you dont have a keyboard backlight.
2024-03-04 20:30:00 +01:00
listener {
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.
}
2024-03-02 00:20:27 +01:00
listener {
2024-03-04 20:30:00 +01:00
timeout = 300 # 5min
on-timeout = loginctl lock-session # lock screen when timeout has passed
2024-03-02 00:20:27 +01:00
}
listener {
2024-03-25 15:19:15 +01:00
timeout = 330 # 5.5min
2024-03-04 20:30:00 +01:00
on-timeout = hyprctl dispatch dpms off # screen off when timeout has passed
on-resume = hyprctl dispatch dpms on # screen on when activity is detected after timeout has fired.
2024-03-02 00:20:27 +01:00
}
listener {
2024-03-04 20:30:00 +01:00
timeout = 1800 # 30min
on-timeout = systemctl suspend # suspend pc
2024-03-02 00:20:27 +01:00
}
```