general { # Dedup: never stack a second hyprlock on top of an existing one lock_cmd = pidof hyprlock || hyprlock # Lock before the machine sleeps, restore monitors on wake before_sleep_cmd = loginctl lock-session after_sleep_cmd = niri msg action power-on-monitors # Honor idle inhibitors (video, meetings, presentations) instead of # blanking/locking through them — this is the swayidle behavior we lost. ignore_dbus_inhibit = false ignore_systemd_inhibit = false } # 5 min: blank the monitors listener { timeout = 300 on-timeout = niri msg action power-off-monitors on-resume = niri msg action power-on-monitors } # 10 min: lock (drives lock_cmd via logind) listener { timeout = 600 on-timeout = loginctl lock-session } # 30 min: suspend-then-hibernate listener { timeout = 1800 on-timeout = systemctl suspend-then-hibernate }