Protect against hyprlock crash when there are no screens at all

This commit is contained in:
David Heinemeier Hansson
2026-06-22 19:28:43 +02:00
parent 62ada9e9ec
commit 8f5336e0d5
3 changed files with 76 additions and 5 deletions
+8 -1
View File
@@ -6,6 +6,7 @@ source "$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)/base-test.sh"
monitor_watch="$ROOT/bin/omarchy-hyprland-monitor-watch"
sleep_lock="$ROOT/bin/omarchy-system-sleep-lock"
lock_service="$ROOT/shell/plugins/lock/Service.qml"
grep -F 'recover_after_monitor_removal' "$monitor_watch" >/dev/null
grep -F 'sleep 1' "$monitor_watch" >/dev/null
@@ -15,4 +16,10 @@ pass "monitor watcher retries internal monitor recovery after removal"
grep -F 'omarchy-hyprland-monitor-internal recover >/dev/null 2>&1 || true' "$sleep_lock" >/dev/null
grep -F 'omarchy-hyprland-monitor-internal-mirror recover >/dev/null 2>&1 || true' "$sleep_lock" >/dev/null
pass "sleep lock recovers internal monitor toggles before suspend"
grep -F '(( attempt % 5 == 0 )) && recover_internal_monitor_toggles' "$sleep_lock" >/dev/null
pass "sleep lock recovers internal monitor toggles while waiting for secure lock"
grep -F 'lock-pending: no-real-screen' "$lock_service" >/dev/null
grep -F 'function onScreensChanged() { root.requestSessionLock() }' "$lock_service" >/dev/null
grep -F 'realScreens: root.realScreenCount()' "$lock_service" >/dev/null
pass "lock service defers session lock until a real screen exists"