Complete Panama settings controls
This commit is contained in:
+43
@@ -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'
|
||||
Reference in New Issue
Block a user