hypr-dotfiles/hypr/scripts/wake-display.sh
Jeena 24344598e9 fix: prevent black lock screen on dual-GPU system
- 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
2026-08-15 19:22:38 +09:00

20 lines
658 B
Bash
Executable file

#!/bin/bash
# hypridle step 3 on-resume — wake display after idle off.
# Cycles DPMS only if the display was actually turned off (avoids flicker
# when the user returns before step 3 fires).
SIGNATURE=$(ls "$XDG_RUNTIME_DIR/hypr/" 2>/dev/null | head -1)
export HYPRLAND_INSTANCE_SIGNATURE=$SIGNATURE
export XDG_RUNTIME_DIR=/run/user/$(id -u)
DPMS=$(hyprctl monitors 2>/dev/null | grep dpmsStatus | awk '{print $2}')
if [ "$DPMS" = "0" ]; then
# Display was off — cycle DPMS to force re-creation of hyprlock surfaces
hyprctl dispatch dpms off
sleep 1
fi
hyprctl dispatch dpms on
ddcutil setvcp 10 100
wpctl set-mute @DEFAULT_AUDIO_SINK@ 0