fix: handle multiple Hyprland sockets in recovery/wake scripts

Both scripts used ls | head -1 to find the socket, which picks the wrong
(dead) session when old socket dirs linger. Now iterates over all sockets
and picks the one that actually responds.
This commit is contained in:
Jeena 2026-08-19 14:24:37 +09:00
parent 4e8a6fad37
commit 7d2a0100e9
2 changed files with 20 additions and 8 deletions

View file

@ -5,16 +5,22 @@
export XDG_RUNTIME_DIR=/run/user/$(id -u)
# Find the Hyprland instance signature from the socket directory
SIGNATURE=$(ls "$XDG_RUNTIME_DIR/hypr/" 2>/dev/null | head -1)
# Find the active Hyprland instance by trying each socket until one responds
for SIG in "$XDG_RUNTIME_DIR/hypr"/*/; do
[ -d "$SIG" ] || continue
SIGNAME=$(basename "$SIG")
export HYPRLAND_INSTANCE_SIGNATURE=$SIGNAME
if hyprctl monitors >/dev/null 2>&1; then
FOUND=1
break
fi
done
if [ -z "$SIGNATURE" ]; then
echo "Could not find Hyprland socket. Is Hyprland running?"
if [ -z "$FOUND" ]; then
echo "Could not find active Hyprland socket. Is Hyprland running?"
exit 1
fi
export HYPRLAND_INSTANCE_SIGNATURE=$SIGNATURE
echo "Resetting display pipeline..."
pkill hyprlock 2>/dev/null