Restore hypridle.conf to the working Chester baseline (Step 1 dim + simple step-3 resume) keeping our after_sleep_cmd (sleep 2; dpms on). Remove the orphaned wake-display.sh / unstick-display.sh scripts added upstream for the multi-GPU black-screen workaround.
51 lines
1.7 KiB
Text
51 lines
1.7 KiB
Text
general {
|
|
inhibit_sleep = 3
|
|
lock_cmd = pidof hyprlock || ~/.config/hypr/scripts/lock.sh
|
|
before_sleep_cmd = loginctl lock-session
|
|
# Small delay so the DRM/GPU is ready before re-enabling the display;
|
|
# running `dpms on` immediately at resume is the classic cause of a black screen.
|
|
after_sleep_cmd = sh -c 'sleep 2; hyprctl dispatch dpms on'
|
|
}
|
|
|
|
# Step 1: Dim monitor at 115 sec idle (warning that it will lock soon)
|
|
listener {
|
|
timeout = 115
|
|
# Only dims the screen, does not lock yet
|
|
# This shows you that lock will happen soon
|
|
on-timeout = dim
|
|
on-resume = pkill -x dim
|
|
}
|
|
|
|
# Step 2: Lock screen at 2 min idle
|
|
listener {
|
|
timeout = 120
|
|
on-timeout = ~/.config/hypr/scripts/lock.sh
|
|
on-resume = wpctl set-mute @DEFAULT_AUDIO_SINK@ 0
|
|
}
|
|
|
|
# Step 3: Turn screen off at 5 min idle
|
|
listener {
|
|
timeout = 300
|
|
on-timeout = hyprctl dispatch dpms off && ddcutil setvcp 10 0
|
|
|
|
# Explanation:
|
|
# - hyprctl dispatch dpms off → tells the compositor to power off the display (DPMS standby)
|
|
# - ddcutil setvcp 10 0 → sets monitor brightness to 0 at the hardware level (safe for OLED)
|
|
#
|
|
# Both together ensure the screen is fully off visually and electrically
|
|
|
|
# When the user becomes active again, restore display
|
|
on-resume = hyprctl dispatch dpms on && ddcutil setvcp 10 100 && wpctl set-mute @DEFAULT_AUDIO_SINK@ 0
|
|
|
|
# Explanation:
|
|
# - hyprctl dispatch dpms on → ensures the display is powered on by the compositor
|
|
# - ddcutil setvcp 10 100 → restores monitor brightness to full
|
|
#
|
|
# Both together guarantee the screen wakes reliably on all monitors
|
|
}
|
|
|
|
# Step 4: Suspend system after 30 min idle
|
|
listener {
|
|
timeout = 1800
|
|
on-timeout = systemctl suspend
|
|
}
|