Convert British spellings to American across the repo

colour -> color, behaviour -> behavior, centre -> center, favourite ->
favorite, and about twenty other pairs, applied consistently across
comments, docs, error/UI copy, and a handful of QML identifiers that
used the British spelling as their actual name: SystemSettings'
serialiseValue/serialiseTable/normaliseGradient, Displays'
normaliseModes, Wallpaper's normalisePolicy, SettingsBackup's
serialiseHomeState, DateTime's ntpSynchronised property, Clipboard's
_normalise helper, and ShortcutCapture's cancelled signal (with its
onCancelled handler in ShortcutsPage.qml). Every call site and the two
tests that assert on the literal source text (settings-ownership and
settings-backup-live contracts) were updated in lockstep.

Left untouched: config/dot/espanso/match/packages/misspell-en/ is a
vendored third-party autocorrect dictionary -- its entries are typo
corrections, not our prose, and rewriting them would fight the
package's own purpose (and any future re-sync from upstream).

The already-American `favorites` property (Home page pinned
accessories) was never actually misspelled -- only nearby comments and
error strings said "favourites" -- so no data migration was needed
there.

Claude-Session: https://claude.ai/code/session_01E6TJUAh41HaP25MVHWkhRZ
This commit is contained in:
Gabriel Brown
2026-08-19 08:07:55 -04:00
parent 8156fc47ca
commit d96863b687
113 changed files with 322 additions and 322 deletions
@@ -16,12 +16,12 @@ Panama gains a polished focus-session surface and a GNOME-like workspace overvie
## Signal Glass surface
- The main capsule is a top-centred blurred glass surface below the bar, carrying Panama's Prism edge, Tokyo Night Moon palette, and event-driven open/close motion.
- The main capsule is a top-centered blurred glass surface below the bar, carrying Panama's Prism edge, Tokyo Night Moon palette, and event-driven open/close motion.
- Its primary row shows the focus icon, workspace label, remaining time, and whether DND and Caffeine are being held.
- Clicking the primary row activates the bound workspace and dismisses the capsule without ending the session.
- The action row contains Pause or Resume, Workspace, and End.
- Workspace opens the Continuum overview with the session's bound workspace selected.
- A labelled close button hides the capsule while the session continues.
- A labeled close button hides the capsule while the session continues.
- While a session exists, a compact bar indicator remains visible. Clicking it reopens the capsule, so dismissal never makes the running session undiscoverable.
- No focus UI animates while idle. The only periodic update is the once-per-second remaining-time text while a session is running and not paused.
@@ -107,7 +107,7 @@ Devices and Desktop & Dock. Its page contains three cards.
1. **Home Assistant** shows connection health, discovered-light count, Refresh,
and Open Home Assistant.
2. **Control Center favourites** shows selected accessories as a two-column
2. **Control Center favorites** shows selected accessories as a two-column
card shelf. Each item exposes a drag handle, editable alias, source friendly
name, and Remove action. Dragging reorders the list; the first four are
explicitly marked as the resting Control Center shelf.
@@ -55,7 +55,7 @@ $ hyprctl getoption decoration:rounding -j → "int": 4
`eval` is also strictly more capable than `keyword` — it can set *any* config
value, including gradients, animation curves, and nested tables. It executes
arbitrary Lua, so the existing "never interpolate UI text into a command" rule
must extend to it: values are validated and serialised numerically, never
must extend to it: values are validated and serialized numerically, never
concatenated from user input.
### Finding 2: three disconnected sources of truth for the same three values
@@ -206,7 +206,7 @@ promote the ~40 hardcoded `Settings.qml` values into real controls, and give
Appearance genuine content: accent pair, window rounding, gaps, border size,
blur, animation speed, bar height, font scale, and wallpaper.
Appearance customisation stays inside the design language. The user picks how much
Appearance customization stays inside the design language. The user picks how much
of it there is — spacing, softness, motion — not a free-form palette editor that
would let the Prism identity be dismantled by accident.
@@ -223,13 +223,13 @@ defaults, and Settings applies them live with `hyprctl eval`.
- No UI-supplied string is ever interpolated into an `eval`, a shell command, or
a config value. Numbers are range-checked; choices are matched against an
allow-list; colours are validated as hex before serialisation.
allow-list; colors are validated as hex before serialization.
- A malformed or absent `settings.json` must degrade to shipped defaults, never
to a broken compositor.
- `hyprctl keyword` is banned in this codebase. It exits 0 without acting.
- Every write path must be observably verified — read the value back rather than
trusting an exit code. Finding 1 exists because an exit code was trusted.
- Tokyo Night Moon and Prism remain the only visual identity. Customisation
- Tokyo Night Moon and Prism remain the only visual identity. Customization
adjusts its parameters, it does not replace it.
- Motion stays event-driven. No idle repaint, at any setting.
- GNOME keeps ownership of hardware, accounts, printers, and users.
@@ -4,7 +4,7 @@
Panama will expand the existing top-right Quick Settings popover into a complete
Control Center. Wi-Fi, Bluetooth, Focus, Caffeine, Night Light, audio, account,
settings, and power remain in place. Home Assistant favourites and lightweight
settings, and power remain in place. Home Assistant favorites and lightweight
iPhone continuity join that same surface instead of creating separate windows
or permanent bar widgets.
@@ -18,7 +18,7 @@ the paired iPhone exposes only a useful subset of KDE Connect.
- Make the top-right popover feel like a complete desktop Control Center rather
than a small collection of connectivity toggles.
- Toggle the existing Home Assistant favourites without opening a browser.
- Toggle the existing Home Assistant favorites without opening a browser.
- Preserve the user's seven enabled Home Assistant lights and use Home
Assistant friendly names and live states.
- Show the paired iPhone's real reachability and expose Send File, Send
@@ -67,7 +67,7 @@ The resting panel is ordered by frequency and scope:
1. Wi-Fi, Bluetooth, Caffeine, and Night Light toggle grid.
2. Focus and audio controls.
3. Home favourites.
3. Home favorites.
4. Phone continuity.
5. User, Panama Settings, and power footer.
@@ -83,7 +83,7 @@ panel remains predictable.
## Home section
The resting Home card shows the first four enabled favourites in their saved
The resting Home card shows the first four enabled favorites in their saved
order. Each tile contains a domain-appropriate glyph, a friendly name, and a
plain state such as `On`, `Off`, or `Unavailable`. Enabled lights use a quiet
amber light treatment; Panama blue remains reserved for desktop selection and
@@ -96,7 +96,7 @@ without a toast or Signal Glass event. A failure restores the last known state
and displays a concise inline error inside the Home section.
The trailing `N accessories` action expands a full list of configured
favourites inside the Control Center. No unconfigured Home Assistant entity is
favorites inside the Control Center. No unconfigured Home Assistant entity is
shown. An `Open Home Assistant` action launches the configured base URL.
If Home Assistant is unreachable, Panama retains the last good states for the
@@ -165,7 +165,7 @@ reliable byte progress for this device.
Add `scripts/panama-home-assistant`, a small local bridge with four commands:
- `probe` reports configuration and API availability without entity details;
- `snapshot` returns only configured favourites and normalized state;
- `snapshot` returns only configured favorites and normalized state;
- `toggle ENTITY_ID` calls the Home Assistant service for an allow-listed
configured entity; and
- `open` launches the configured Home Assistant URL.
@@ -212,7 +212,7 @@ outside-click behavior remain intact.
- Helpers never echo tokens, Authorization headers, clipboard text, entity
response bodies, IP addresses, or full local file paths to logs.
- Home Assistant commands accept only entity IDs present in the configured
favourites snapshot.
favorites snapshot.
- KDE Connect device IDs and file paths are passed as separate process
arguments, never interpolated into a shell command.
- A user click is required for every Home toggle, phone ring, clipboard send,
@@ -231,7 +231,7 @@ outside-click behavior remain intact.
is offered.
- Invalid or expired token: Home shows `Authentication required` without
exposing the response body.
- One malformed entity is omitted without suppressing healthy favourites.
- One malformed entity is omitted without suppressing healthy favorites.
## Testing and verification
@@ -261,7 +261,7 @@ checks require an explicit user action from the finished Control Center.
## Documentation updates
- Update `config/dot/hypr/DESKTOP-PARITY.md` to mark Home Assistant favourites
- Update `config/dot/hypr/DESKTOP-PARITY.md` to mark Home Assistant favorites
and KDE Connect phone integration live.
- Document Control Center behavior, credential resolution, and iOS limitations
in `config/dot/hypr/README.md`.
@@ -52,7 +52,7 @@ The feature is deliberately local-first. Screen pixels are captured into Panama'
- Tokyo Night Moon tokens are the only colors.
- Processing uses a static status treatment; there is no spinner, pulse, shimmer, or idle animation.
- OCR text is readable interface typography in a selectable editor, not a terminal-like dump.
- The primary action is Copy. Network-leaving actions are visually secondary and clearly labelled.
- The primary action is Copy. Network-leaving actions are visually secondary and clearly labeled.
## Settings and discoverability