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.
29 lines
683 B
Bash
Executable File
29 lines
683 B
Bash
Executable File
#!/bin/bash
|
|
|
|
# omarchy:summary=Lock before suspend and wait for the session lock to become secure
|
|
# omarchy:group=system
|
|
# omarchy:hidden=true
|
|
|
|
wait_attempts=${1:-100}
|
|
|
|
if [[ ! $wait_attempts =~ ^[0-9]+$ ]] || (( wait_attempts < 1 )); then
|
|
wait_attempts=100
|
|
fi
|
|
|
|
omarchy-hyprland-monitor-internal recover >/dev/null 2>&1 || true
|
|
omarchy-hyprland-monitor-internal-mirror recover >/dev/null 2>&1 || true
|
|
|
|
omarchy-shell lock lock >/dev/null 2>&1 || exit 1
|
|
|
|
for (( attempt = 0; attempt < wait_attempts; attempt++ )); do
|
|
status=$(omarchy-shell lock status 2>/dev/null || true)
|
|
|
|
if jq -e '.secure == true' <<<"$status" >/dev/null 2>&1; then
|
|
exit 0
|
|
fi
|
|
|
|
sleep 0.05
|
|
done
|
|
|
|
exit 1
|