hyprland-wiki/pages/Hypr Ecosystem/hypridle.md
sentakuhm 7b55b46f2a
add full hypridle example work with hyprlock. (#496)
* add full hypridle example work with hyprlock.

* removed general {} for better readability
2024-03-01 23:20:27 +00:00

2.1 KiB

hypridle is hyprland's idle management daemon.

{{< toc >}}

Configuration

Configuration is done via the config file at ~/.config/hypr/hypridle.conf. A config file is required; hypridle won't run without one.

General

Variables in the general category:

variable description type default
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

Listeners

Hypridle uses listeners to define actions on idleness.

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.

Example listener:

listener {
    timeout = 500                            # in seconds
    on-timeout = notify-send "You are idle!" # command to run when timeout has passed
    on-resume = notify-send "Welcome back!"  # command to run when activity is detected after timeout has fired.
}

You can define as many listeners as you want.

Full hypridle example with hyprlock

listener {
    timeout = 300                           # 5min
    on-timeout = hyprlock                   # lock screen when timeout has passed
    on-resume = notify-send "Welcome back!" # notification activity is detected after timeout has fired.
}

listener {
    timeout = 380                           # 5.5min
    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.
}

listener {
    timeout = 1800                          # 30min
    on-timeout = systemctl suspend          # suspend pc
}