Enable misc:key_press_enables_dpms / mouse_move_enables_dpms so the
compositor re-enables the display on input when hypridle's after-sleep
dpms-on races with GPU resume. Also delay after_sleep_cmd dpms-on by 2s.
Fixes black Hyprland VT after wake while kernel console stays visible.
dim creates a wlr-layer-shell surface that Hyprland never cleans up
when the process exits — leaves an opaque full-screen overlay (pid=-1)
covering the entire display until the layer tree is rebuilt.
Removing step 1 (dim) from hypridle prevents future occurrences.
unstick-display.sh now restarts waybar to force a layer tree rebuild
as a recovery measure.
- AQ_DRM_DEVICES=/dev/dri/card0 forces Aquamarine to use only the
Intel iGPU, avoiding EGL_BAD_MATCH errors from the NVIDIA RTX 3060
after VT/DPMS cycles (page-flip lockups, black display)
- lock.sh: guard against duplicate hyprlock instances (second instance
steals surfaces, leaves screen black)
- lid-close.sh: same guard for laptop
- wake-display.sh: conditional DPMS cycle (only when display is off)
to restore hyprlock surfaces without flicker
- unstick-display.sh: emergency recovery script for tty3
- Add lid-close.sh: starts hyprlock in background and immediately cuts
the display via dpms off, so the display is dark while hyprlock renders
- William.conf: bind lid close to lid-close.sh; bind lid open to kill dim
and turn display back on
- lock.sh: pass --no-fade-in to hyprlock
- hyprlock.conf: disable fadeOut animation
- hypridle.conf: add inhibit_sleep = 3 and use loginctl lock-session