Run internal monitor toggle recovery before the sleep lock path and retry recovery after Hyprland monitor removal events. This gives dock/lid-close races time to settle before suspend or external-display reconnects leave the session without a safe internal display fallback.
28 lines
641 B
Bash
Executable File
28 lines
641 B
Bash
Executable File
#!/bin/bash
|
|
|
|
# omarchy:summary=Watch Hyprland monitor events and recover monitor toggles when a monitor is removed
|
|
|
|
SOCKET="$XDG_RUNTIME_DIR/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock"
|
|
|
|
recover_internal_monitor_toggles() {
|
|
omarchy-hyprland-monitor-internal recover
|
|
omarchy-hyprland-monitor-internal-mirror recover
|
|
}
|
|
|
|
recover_after_monitor_removal() {
|
|
recover_internal_monitor_toggles
|
|
|
|
(
|
|
sleep 1
|
|
recover_internal_monitor_toggles
|
|
) &
|
|
}
|
|
|
|
socat -U - "UNIX-CONNECT:$SOCKET" | while read -r event; do
|
|
case "$event" in
|
|
monitorremoved\>\>*|monitorremovedv2\>\>*)
|
|
recover_after_monitor_removal
|
|
;;
|
|
esac
|
|
done
|