Complete Panama settings controls

This commit is contained in:
Gabriel Brown
2026-08-18 01:36:07 -04:00
parent 768801dbe4
commit 1ca571458c
11 changed files with 725 additions and 555 deletions
+43
View File
@@ -0,0 +1,43 @@
#!/usr/bin/env bash
# Public Settings.qml values are the compatibility surface consumed throughout
# the shell. Once a value becomes user-configurable, this file must read it from
# DesktopPreferences rather than keeping a second hardcoded source of truth.
set -euo pipefail
repo_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
settings="$repo_dir/config/dot/quickshell/config/Settings.qml"
fail() {
printf 'settings hardcoded values contract: %s\n' "$1" >&2
exit 1
}
properties=(
temperatureUnit
weatherRefreshMinutes
vitalsIntervalMs
notificationTimeoutMs
notificationTimeoutCriticalMs
notificationHistoryLimit
maxVisibleToasts
screenshotDir
recordingDir
recorderArgs
)
for property in "${properties[@]}"; do
count="$(rg -c \
"^[[:space:]]*readonly property [A-Za-z]+ ${property}: DesktopPreferences\\.get\\(\"${property}\"\\)[[:space:]]*(//.*)?$" \
"$settings" || true)"
[[ "$count" == "1" ]] \
|| fail "$property must use DesktopPreferences.get(\"$property\") exactly once"
done
# dockPinned was already migrated on the shared branch. Pinning it here keeps a
# later bulk edit from accidentally restoring the old hardcoded app list.
rg -q '^[[:space:]]*readonly property var dockPinned: DesktopPreferences\.get\("dockPinned"\)[[:space:]]*$' "$settings" \
|| fail 'dockPinned no longer reads DesktopPreferences exactly'
printf 'settings hardcoded values contract: PASS\n'