57 lines
2.8 KiB
Plaintext
57 lines
2.8 KiB
Plaintext
# =============================================================================
|
|
# hypridle.conf — Idle management daemon configuration
|
|
#
|
|
# hypridle watches for user inactivity and triggers actions (lock, suspend)
|
|
# after configurable timeouts. It integrates with the presence-detection daemon
|
|
# (presence-detect.sh) which resets the idle timer every 20s (backed off to 120s
|
|
# under heavy CPU/RAM load) while the webcam detects motion, so these timeouts
|
|
# only fire when the user has truly stepped away from the machine.
|
|
#
|
|
# Reference: https://wiki.hypr.land/Hypr-Ecosystem/hypridle/
|
|
# =============================================================================
|
|
|
|
general {
|
|
# Command to run when the lock screen should be shown.
|
|
# `pidof hyprlock || hyprlock` first checks if hyprlock is already running
|
|
# (pidof returns 0 if found) and only launches a new instance if it is not.
|
|
# This prevents stacking multiple lock screen instances on repeated trigger.
|
|
lock_cmd = pidof hyprlock || hyprlock
|
|
|
|
# Lock the session immediately when the system is about to suspend.
|
|
# loginctl lock-session sends the Lock D-Bus signal to the session manager,
|
|
# which hyprlock listens to, ensuring the screen is locked before the
|
|
# display blanks during suspend.
|
|
before_sleep_cmd = loginctl lock-session
|
|
|
|
# fprintd restart ensures fingerprint sensor is ready after resume
|
|
# Turn the display back on after the system wakes from suspend.
|
|
# `hyprctl dispatch dpms on` sends DPMS power-on to all connected monitors.
|
|
after_sleep_cmd = hyprctl dispatch dpms on
|
|
|
|
# ignore_dbus_inhibit = false means hypridle honours D-Bus idle-inhibit locks.
|
|
# This allows systemd-inhibit (used by the presence-detect daemon and the
|
|
# caffeine script) to pause the idle timer while they are active.
|
|
ignore_dbus_inhibit = false # respect systemd-inhibit locks (presence-detect, caffeine)
|
|
}
|
|
|
|
# Presence detection resets the idle timer every 20s (up to 120s under load)
|
|
# while motion is detected, so these timeouts only run when you've actually
|
|
# stepped away.
|
|
|
|
# First idle listener: lock the screen after 30s of inactivity.
|
|
listener {
|
|
timeout = 30 # 30s — lock screen
|
|
# loginctl lock-session triggers the session lock signal; hyprlock picks it up.
|
|
on-timeout = loginctl lock-session
|
|
}
|
|
|
|
# Second idle listener: sleep after 1 minute of inactivity. suspend-then-hibernate
|
|
# suspends to RAM immediately (fast resume); HibernateDelaySec — set system-wide by
|
|
# hypr/systemd-sleep.conf, deployed to /etc/systemd/sleep.conf.d/ by sysupdate.sh —
|
|
# then hibernates (writes RAM to disk, fully powers it down) 79 minutes later, so
|
|
# hibernate lands ~80 minutes after the machine first went idle (1min + 79min).
|
|
listener {
|
|
timeout = 60 # 1 min — sleep
|
|
on-timeout = systemctl suspend-then-hibernate
|
|
}
|