Tier 0: render what the services already decided, honestly

Claude-Session: https://claude.ai/code/session_01Ms2FbjQy31TVf3CEvQhGM8
This commit is contained in:
Gabriel Brown
2026-08-25 00:24:30 -04:00
parent be0e55214b
commit 8b1205e4b8
38 changed files with 1474 additions and 260 deletions
@@ -4,6 +4,7 @@ set -euo pipefail
repo_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
service="$repo_dir/config/dot/quickshell/services/Displays.qml"
page="$repo_dir/config/dot/quickshell/modules/settings/DisplaysPage.qml"
harness="$repo_dir/config/dot/quickshell/displays-harness.qml"
fail() {
@@ -46,6 +47,20 @@ done
rg -q 'vrrMode\s*(!==\s*-1|>\s*-1|>=\s*0)' "$service" \
|| fail 'nothing in the service decides when the vrr key is omitted, so following the global policy would be written as an override'
# ── The pickers show what you chose, for as long as the choice is undecided ──
#
# confirm() is what writes, so during the keep-or-revert window nothing is
# stored yet and currentLayout() answers vrrMode from the PREVIOUS stored
# record -- the one field the compositor cannot report. The variable-refresh
# picker therefore snapped back to its old value the instant the change was
# applied, while the banner beside it asked whether to keep the change it had
# just stopped showing. The requested layout is what the page must render until
# the window closes.
rg -Fq 'Displays.awaitingConfirmation && Displays.pendingRequestedLayout' "$page" \
|| fail 'the displays page ignores the requested layout during confirmation, so a picker snaps back while the Keep banner is still up'
rg -Fq 'Displays.pendingRequestedLayout.find(entry => entry.name === name)' "$page" \
|| fail 'the displays page does not read the selected output out of the requested layout'
rg -Fq 'function applyLayoutFixture(' "$harness" \
|| fail 'the fixture cannot exercise complete layout transactions'
rg -Fq 'function injectReadback(' "$harness" \