From d96863b687aee884cb4c83adc930fb94629adfdf Mon Sep 17 00:00:00 2001 From: Gabriel Brown Date: Wed, 19 Aug 2026 08:07:55 -0400 Subject: [PATCH] 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 --- .gitignore | 4 +-- config/dot/btop/themes/tokyonight-day.theme | 2 +- config/dot/gtk-3.0/settings.ini.template | 2 +- config/dot/gtk-4.0/settings.ini.template | 2 +- config/dot/hypr/DESKTOP-PARITY.md | 14 ++++---- config/dot/hypr/README.md | 26 +++++++-------- config/dot/hypr/env.lua | 4 +-- config/dot/hypr/hypridle.conf | 2 +- config/dot/hypr/hyprland.lua | 2 +- config/dot/hypr/hyprlock.conf.template | 4 +-- config/dot/hypr/hyprtoolkit.conf | 2 +- config/dot/hypr/input.lua | 4 +-- config/dot/hypr/keybinds.lua | 22 ++++++------- config/dot/hypr/looks.lua | 8 ++--- config/dot/hypr/monitors.lua | 4 +-- config/dot/hypr/prefs.lua | 2 +- config/dot/hypr/rules.lua | 4 +-- config/dot/kitty/themes/tokyonight-moon.conf | 2 +- config/dot/nvim/lua/config/panama.lua | 2 +- config/dot/nvim/lua/plugins/colorscheme.lua | 6 ++-- config/dot/ohmyposh/zen.toml | 2 +- .../quickshell/config/DesktopPreferences.qml | 2 +- .../dot/quickshell/config/HomePreferences.qml | 2 +- config/dot/quickshell/config/Migrations.qml | 2 +- .../quickshell/config/PreferenceSchema.qml | 30 ++++++++--------- config/dot/quickshell/config/Settings.qml | 2 +- config/dot/quickshell/config/Theme.qml | 22 ++++++------- config/dot/quickshell/displays-harness.qml | 2 +- config/dot/quickshell/migrations-harness.qml | 2 +- config/dot/quickshell/modules/bar/Bar.qml | 4 +-- config/dot/quickshell/modules/bar/Clock.qml | 4 +-- .../quickshell/modules/bar/StatusCluster.qml | 2 +- .../quickshell/modules/bar/VitalsField.qml | 2 +- .../quickshell/modules/bar/VitalsWidget.qml | 2 +- .../dot/quickshell/modules/bar/Workspaces.qml | 4 +-- .../quickshell/modules/capture/CaptureBar.qml | 4 +-- .../quickshell/modules/capture/ModeButton.qml | 2 +- .../modules/capture/SelectionLayer.qml | 4 +-- .../modules/datemenu/CalendarGrid.qml | 6 ++-- .../quickshell/modules/datemenu/DateMenu.qml | 6 ++-- .../dot/quickshell/modules/dock/DockBody.qml | 6 ++-- .../dot/quickshell/modules/dock/DockItem.qml | 6 ++-- .../notifications/NotificationCard.qml | 6 ++-- .../modules/overview/WorkspaceCard.qml | 4 +-- .../modules/quicksettings/BluetoothList.qml | 2 +- .../quicksettings/BrightnessControl.qml | 10 +++--- .../modules/quicksettings/RowButton.qml | 2 +- .../modules/settings/AccentPicker.qml | 12 +++---- .../modules/settings/AppearancePage.qml | 2 +- .../modules/settings/DateTimePage.qml | 4 +-- .../modules/settings/DesktopPreview.qml | 4 +-- .../modules/settings/HealthPage.qml | 4 +-- .../quickshell/modules/settings/MousePage.qml | 4 +-- .../quickshell/modules/settings/PowerPage.qml | 2 +- .../dot/quickshell/modules/settings/README.md | 14 ++++---- .../modules/settings/ShortcutCapture.qml | 6 ++-- .../modules/settings/ShortcutsPage.qml | 4 +-- .../quickshell/modules/settings/SliderRow.qml | 4 +-- .../modules/settings/TextEntryRow.qml | 2 +- .../modules/settings/TimeOfDayRow.qml | 2 +- .../quickshell/scripts/panama-settings-backup | 2 +- .../dot/quickshell/scripts/panama-theme-apps | 8 ++--- config/dot/quickshell/services/Clipboard.qml | 4 +-- .../dot/quickshell/services/ColorScheme.qml | 14 ++++---- config/dot/quickshell/services/DateTime.qml | 8 ++--- config/dot/quickshell/services/Displays.qml | 4 +-- config/dot/quickshell/services/Geocoding.qml | 2 +- .../quickshell/services/GraphicsDevices.qml | 2 +- config/dot/quickshell/services/NightLight.qml | 2 +- config/dot/quickshell/services/Notifs.qml | 4 +-- .../dot/quickshell/services/PowerProfiles.qml | 4 +-- .../quickshell/services/SettingsBackup.qml | 6 ++-- .../quickshell/services/SettingsSearch.qml | 4 +-- .../dot/quickshell/services/SoundFeedback.qml | 2 +- .../quickshell/services/SystemSettings.qml | 32 +++++++++---------- config/dot/quickshell/services/Wallpaper.qml | 12 +++---- config/dot/quickshell/widgets/PrismEdge.qml | 4 +-- config/dot/quickshell/widgets/ThemedIcon.qml | 4 +-- config/dot/quickshell/widgets/Toggle.qml | 4 +-- config/dot/quickshell/widgets/ValueSlider.qml | 4 +-- config/dot/tmux/themes/tokyonight-day.conf | 2 +- config/dot/tmux/themes/tokyonight-moon.conf | 2 +- config/dot/tmux/tmux.conf | 4 +-- config/dot/vicinae/themes/tokyonight-day.toml | 4 +-- .../hicolor/scalable/apps/panama-settings.svg | 2 +- config/local/share/icons/panama-settings.svg | 4 +-- .../plans/2026-08-17-focus-glass-continuum.md | 2 +- ...26-08-17-home-accessories-customization.md | 2 +- .../plans/2026-08-17-panama-cohesion.md | 16 +++++----- .../plans/2026-08-17-panama-control-center.md | 14 ++++---- .../2026-08-18-panama-health-recovery.md | 2 +- ...2026-08-17-focus-glass-continuum-design.md | 4 +-- ...7-home-accessories-customization-design.md | 2 +- .../2026-08-17-panama-cohesion-design.md | 8 ++--- ...2026-08-17-panama-control-center-design.md | 18 +++++------ .../2026-08-17-screen-intelligence-design.md | 2 +- setup/scripts/link-dotfiles | 12 +++---- tests/hypr/idle-config-contract.sh | 8 ++--- tests/hypr/prefs-fallback-contract.sh | 4 +-- tests/quickshell/connectivity-contract.sh | 2 +- .../declared-dependencies-contract.sh | 2 +- tests/quickshell/dock-pins-contract.sh | 2 +- tests/quickshell/enum-hypr-map-contract.sh | 6 ++-- tests/quickshell/health-ui-contract.sh | 4 +-- .../quickshell/lock-screen-helper-contract.sh | 12 +++---- .../quickshell/lock-screen-theme-contract.sh | 26 +++++++-------- tests/quickshell/migrations-contract.sh | 4 +-- tests/quickshell/prism-gallery-contract.sh | 2 +- tests/quickshell/settings-backup-contract.sh | 4 +-- .../settings-backup-live-contract.sh | 2 +- .../settings-commit-reset-contract.sh | 6 ++-- .../settings-hyprland-write-contract.sh | 2 +- .../quickshell/settings-ownership-contract.sh | 8 ++--- 113 files changed, 322 insertions(+), 322 deletions(-) diff --git a/.gitignore b/.gitignore index a2d024d..7dda67a 100644 --- a/.gitignore +++ b/.gitignore @@ -14,10 +14,10 @@ __pycache__/ *.py[cod] -# Generated from the colour scheme; machine state, not configuration. +# Generated from the color scheme; machine state, not configuration. /config/dot/kitty/current-theme.conf -# Generated from the colour scheme; machine state, not configuration. +# Generated from the color scheme; machine state, not configuration. /config/dot/gtk-3.0/settings.ini /config/dot/gtk-4.0/settings.ini /config/dot/tmux/current-theme.conf diff --git a/config/dot/btop/themes/tokyonight-day.theme b/config/dot/btop/themes/tokyonight-day.theme index 6932b74..dcdabdb 100644 --- a/config/dot/btop/themes/tokyonight-day.theme +++ b/config/dot/btop/themes/tokyonight-day.theme @@ -2,7 +2,7 @@ # # btop ships no Tokyo Night light variant at all, and the nearest stock light # theme (flat-remix-light) is a different palette that happens to have a similar -# background. Same colours as kitty/themes/tokyonight-day.conf so the terminal +# background. Same colors as kitty/themes/tokyonight-day.conf so the terminal # and what runs inside it cannot disagree. # # Gradients keep the same low -> middle -> high meaning as the dark theme, using diff --git a/config/dot/gtk-3.0/settings.ini.template b/config/dot/gtk-3.0/settings.ini.template index e4ebce2..df2701c 100644 --- a/config/dot/gtk-3.0/settings.ini.template +++ b/config/dot/gtk-3.0/settings.ini.template @@ -1,6 +1,6 @@ # GENERATED FILE -- edit settings.ini.template instead. # -# The theme name and dark preference below follow Panama's colour +# The theme name and dark preference below follow Panama's color # scheme, so this file is regenerated on every switch and is not # committed. Under GNOME, gnome-settings-daemon publishes these over # XSETTINGS and this file is ignored; under Hyprland there is no diff --git a/config/dot/gtk-4.0/settings.ini.template b/config/dot/gtk-4.0/settings.ini.template index 973a818..c03051a 100644 --- a/config/dot/gtk-4.0/settings.ini.template +++ b/config/dot/gtk-4.0/settings.ini.template @@ -1,6 +1,6 @@ # GENERATED FILE -- edit settings.ini.template instead. # -# The theme name and dark preference below follow Panama's colour +# The theme name and dark preference below follow Panama's color # scheme, so this file is regenerated on every switch and is not # committed. Under GNOME, gnome-settings-daemon publishes these over # XSETTINGS and this file is ignored; under Hyprland there is no diff --git a/config/dot/hypr/DESKTOP-PARITY.md b/config/dot/hypr/DESKTOP-PARITY.md index 17d1a9c..b5afa57 100644 --- a/config/dot/hypr/DESKTOP-PARITY.md +++ b/config/dot/hypr/DESKTOP-PARITY.md @@ -15,15 +15,15 @@ Last live audit: 2026-08-17, Fedora 44, Hyprland 0.56.2, Quickshell 0.3.0. | Hidden applications | GNOME App Hider list in Vicinae provider config | Live | | Tiling and dynamic workspaces | Hyprland Lua config, Forge keymap preserved | Live | | Overview | Continuum filmstrip, large workspace preview, cross-workspace search | Live | -| Minimise | `SUPER+SHIFT+X` sends to scratchpad; `SUPER+X` restores | Live | -| Dock | Quickshell dock with GNOME favourites and intellihide | Live | +| Minimize | `SUPER+SHIFT+X` sends to scratchpad; `SUPER+X` restores | Live | +| Dock | Quickshell dock with GNOME favorites and intellihide | Live | | Panel | Workspaces, CPU/RAM/GPU, clock, weather, quiet event capsule, media, clipboard, tray, status | Live | | Clipboard history | Vicinae owns capture/storage; Quickshell provides the panel | Live | | Notifications | Quickshell server, toasts, grouped history, DND, clear actions | Live | | Date menu | Two-column Daybook with Agenda, Ongoing activity, Notifications, month calendar, weather, and media | Live | | Ongoing activity | Focus, Caffeine, recording, screen sharing, camera, and microphone state with direct controls | Live | | Calendar agenda | Existing GNOME, Google, iCloud, and Nextcloud sources through Evolution Data Server | Live | -| Control Center | Wi-Fi, Bluetooth, audio input/output, Caffeine, Night Light, Focus, Home Assistant favourites, and KDE Connect phone continuity | Live | +| Control Center | Wi-Fi, Bluetooth, audio input/output, Caffeine, Night Light, Focus, Home Assistant favorites, and KDE Connect phone continuity | Live | | Focus sessions | Persistent workspace-bound timer, DND/caffeine coordination, Signal Glass controls | Live | | Brightness | Appears only when a backlight device exists | Live, not applicable on this monitor | | AppIndicator / tray | Native StatusNotifierItem host and themed menus | Live | @@ -36,7 +36,7 @@ Last live audit: 2026-08-17, Fedora 44, Hyprland 0.56.2, Quickshell 0.3.0. | Removable media | udiskie plus udisks notifications | Live | | Autostart apps | Nextcloud, Bitwarden, and RustDesk system service/tray | Live | | Printer administration | CUPS with the `system-config-printer` graphical interface | Live | -| System settings | The Settings app for display policy, appearance, desktop, sound, focus, shortcuts, and services; labelled GNOME hardware/account handoffs | Live | +| System settings | The Settings app for display policy, appearance, desktop, sound, focus, shortcuts, and services; labeled GNOME hardware/account handoffs | Live | | System health and recovery | Settings → System Health, `Panama: Check System Health` in Vicinae, a degraded-only bar indicator, redacted reports, and bounded Panama-owned repairs | Live | ## System health and recovery @@ -59,7 +59,7 @@ They never install packages, invoke `sudo`, delete user data, or rewrite arbitrary configuration. Generic Fedora configuration remains with the system tools that own it. The -final System Health card hands network settings, users, sharing, colour +final System Health card hands network settings, users, sharing, color profiles, and digital wellbeing to their exact GNOME Settings panels rather than presenting inert Hyprland controls. @@ -79,7 +79,7 @@ than presenting inert Hyprland controls. | Bluetooth Quick Connect | Replaced by the full Bluetooth picker | | Wi-Fi QR | Replaced by an on-demand QR-code sharing flow in Control Center's Wi-Fi panel; the code is generated only while shown and written to tmpfs, never persisted | | GSConnect | Replaced by capability-aware KDE Connect phone continuity in Control Center; the paired iPhone exposes file, clipboard, and Ring actions when reachable | -| Home Assistant | Replaced by secure favourites in Control Center; explicit private environment values take precedence over the existing GNOME extension and Secret Service setup | +| Home Assistant | Replaced by secure favorites in Control Center; explicit private environment values take precedence over the existing GNOME extension and Secret Service setup | | Custom Hot Corners Extended | No action was configured, so there is no behavior to port | | App Hider | Hidden app list is now applied in Vicinae | | Allow Locked Remote Desktop | Mutter-specific patch; RustDesk is independent, but lock-screen access needs a real remote test | @@ -111,4 +111,4 @@ menu for a minority, which is worse than omitting it. Relevant references: - A future focused-window menu could expose compositor actions such as float, -move, fullscreen, and close. It should not be labelled as an application menu. +move, fullscreen, and close. It should not be labeled as an application menu. diff --git a/config/dot/hypr/README.md b/config/dot/hypr/README.md index 7c810f9..4c447b0 100644 --- a/config/dot/hypr/README.md +++ b/config/dot/hypr/README.md @@ -30,7 +30,7 @@ Don't "fix" them. | `prefs.lua` | Reads the settings file the Settings app writes. See below | | `env.lua` | Environment. Note the uwsm caveat below | | `monitors.lua` | DP-2 geometry, scaling, and the HDR decision | -| `looks.lua` | Colours, blur, glow, shadows, animations, VRR, scanout | +| `looks.lua` | Colors, blur, glow, shadows, animations, VRR, scanout | | `input.lua` | Keyboard/mouse. Click-to-focus, like GNOME | | `rules.lua` | Window rules, gaming rules, layer rules for the shell | | `keybinds.lua` | The full keymap | @@ -87,7 +87,7 @@ persistence, validation, reset, and the live write are all derived from that entry. `prefs.lua` never raises. A missing, empty, truncated, malformed, or -wrong-typed settings file costs you your customisations and nothing else; +wrong-typed settings file costs you your customizations and nothing else; `tests/hypr/prefs-fallback-contract.sh` pins that, including that Hyprland still accepts the config in each of those states. @@ -163,7 +163,7 @@ four places, and nowhere else — dock, popovers), running blue on the left to orchid on the right and fading out before the corners. See `quickshell/widgets/PrismEdge.qml`. 2. The focused window's border — `general.col.active_border`, blue→orchid at - 115°. Unfocused windows get no colour at all, because the gradient only + 115°. Unfocused windows get no color at all, because the gradient only means something if one window on screen is wearing it. 3. The active workspace pill in the bar. 4. Slider fills. @@ -179,9 +179,9 @@ which is the opposite of the intent. The Nerd Font is still used, but only to draw **icon glyphs** — it is the pragmatic alternative to freedesktop symbolic icons, which ship with a -hardcoded `#2e3436` fill that Qt (unlike GTK) will not recolour. Where a +hardcoded `#2e3436` fill that Qt (unlike GTK) will not recolor. Where a themed freedesktop icon is wanted instead, `quickshell/widgets/ThemedIcon.qml` -paints a palette colour through the icon's alpha. +paints a palette color through the icon's alpha. Anything whose digits change in place — the clock, the vitals percentages, the recording timer, the selection readout — sets `font.features: @@ -256,7 +256,7 @@ The mental model is unchanged from Forge: | `SUPER + CTRL + G` / `Z` / `V` | Toggle split / preselect right / preselect down | | `SUPER + Tab` / `SHIFT + Tab` | Cycle windows | | `SUPER + SHIFT + grave` | Last window | -| `SUPER + X` / `SUPER + SHIFT + X` | Restore scratchpad / minimise to scratchpad | +| `SUPER + X` / `SUPER + SHIFT + X` | Restore scratchpad / minimize to scratchpad | ### Workspaces (dynamic, like GNOME) | Key | Action | @@ -270,19 +270,19 @@ The mental model is unchanged from Forge: ### Launcher and shell | Key | Action | |---|---| -| `SUPER + A` / `R` / `Space` | Launcher (vicinae) — all three, pick your favourite | +| `SUPER + A` / `R` / `Space` | Launcher (vicinae) — all three, pick your favorite | | `SUPER + SHIFT + R` | Fallback launcher (wofi) if the shell is broken | | `SUPER + V` | Clipboard history | | `SUPER + .` | Emoji picker | | `SUPER + S` | Quick settings | | `SUPER + I` | Settings | | `SUPER + SHIFT + F` | Start or reveal focus session | -| `SUPER + B` | Notification centre | +| `SUPER + B` | Notification center | | `SUPER + grave` | Workspace overview | | `Print` | Screenshot / record picker | | `SHIFT` / `ALT + Print` | Screenshot screen / window immediately | | `SUPER + SHIFT + S` | Screen Intelligence — read text and codes from a selection | -| `SUPER + SHIFT + P` | Colour picker | +| `SUPER + SHIFT + P` | Color picker | | `CTRL + ALT + L` | Lock (SUPER+L is "focus right") | | `CTRL + ALT + Delete` | Power menu | @@ -325,8 +325,8 @@ Caffeine, Night Light, Focus, audio input/output, user, settings, and power in one place. Home and Phone continue the same surface rather than opening extra dashboard windows. -Home shows the first four selected favourites at rest and every selected light -when expanded. Use **Settings → Home & Phone** to choose favourites, +Home shows the first four selected favorites at rest and every selected light +when expanded. Use **Settings → Home & Phone** to choose favorites, set Panama-only aliases, and arrange their order. Dragging a brightness control only previews the value; releasing it sends one brightness request. A normal power toggle leaves Home Assistant responsible for restoring its previous @@ -334,7 +334,7 @@ level. Credentials stay private in the gitignored `config/bash/env` file, with the existing GNOME extension and Secret Service setup retained as a compatibility -fallback. Favourites, aliases, and order live in Quickshell state. No shell +fallback. Favorites, aliases, and order live in Quickshell state. No shell restart is required after changing credentials; close and reopen Control Center to refresh. If Home Assistant is offline, the last known values stay visible with a stale-state label and Retry action. @@ -361,7 +361,7 @@ These are the places a 1:1 port was impossible, and what was done instead: - **Per-edge resize.** Forge resized one named edge; Hyprland resizes along an axis and lets the layout pick the edge. The eight Forge keys collapse to four - behaviours, keeping the horizontal/vertical and grow/shrink pairing. + behaviors, keeping the horizontal/vertical and grow/shrink pairing. - **Overview on `SUPER + grave`, not a bare SUPER tap.** Tap-detection on a modifier misfires when you're quick with SUPER combos. - **Lock on `CTRL + ALT + L`.** `SUPER + L` is "focus right" in this keymap. diff --git a/config/dot/hypr/env.lua b/config/dot/hypr/env.lua index f76f7e1..a18c9a0 100644 --- a/config/dot/hypr/env.lua +++ b/config/dot/hypr/env.lua @@ -1,7 +1,7 @@ -- ───────────────────────────────────────────────────────────────────────────── -- Environment -- --- hl.env() sets variables before the display server initialises, which is what +-- hl.env() sets variables before the display server initializes, which is what -- makes it valid for AQ_* and cursor variables. -- -- NOTE for uwsm sessions: if you log in via "Hyprland (uwsm-managed)", uwsm @@ -58,7 +58,7 @@ hl.env("QT_QPA_PLATFORM", "wayland;xcb") -- "gtk3" makes Qt derive its palette from the live GTK3 theme via the qgtk3 -- platform plugin, so Qt apps match adw-gtk3-dark exactly rather than --- approximating it -- and it gives them GTK file/font/colour dialogs. It also +-- approximating it -- and it gives them GTK file/font/color dialogs. It also -- covers Qt5 and Qt6 with one value. -- -- Note this is a single value, NOT a fallback list: Qt splits on ":" and uses diff --git a/config/dot/hypr/hypridle.conf b/config/dot/hypr/hypridle.conf index 2832c06..25cba89 100644 --- a/config/dot/hypr/hypridle.conf +++ b/config/dot/hypr/hypridle.conf @@ -1,5 +1,5 @@ # ───────────────────────────────────────────────────────────────────────────── -# hypridle — idle behaviour +# hypridle — idle behavior # # Mirrors the GNOME power profile this replaces, exactly: # org.gnome.desktop.session idle-delay = 300 (screen off at 5min) diff --git a/config/dot/hypr/hyprland.lua b/config/dot/hypr/hyprland.lua index 31261de..fa6977a 100644 --- a/config/dot/hypr/hyprland.lua +++ b/config/dot/hypr/hyprland.lua @@ -15,7 +15,7 @@ -- ───────────────────────────────────────────────────────────────────────────── -- Shared preferences first: looks/input/monitors read their defaults through it. --- It never raises, so a missing or malformed settings file costs customisations +-- It never raises, so a missing or malformed settings file costs customizations -- and nothing else. require("prefs") diff --git a/config/dot/hypr/hyprlock.conf.template b/config/dot/hypr/hyprlock.conf.template index 2d84113..bee2187 100644 --- a/config/dot/hypr/hyprlock.conf.template +++ b/config/dot/hypr/hyprlock.conf.template @@ -3,9 +3,9 @@ # # GENERATED FILE. Edit hyprlock.conf.template and re-run # quickshell/scripts/panama-theme-apps; editing this copy is overwritten on the -# next colour scheme change. +# next color scheme change. # -# The colours here follow the desktop's light/dark setting. They used to be +# The colors here follow the desktop's light/dark setting. They used to be # hardcoded Tokyo Night Moon, which meant the one screen you see most often # stayed dark when everything else went light. # diff --git a/config/dot/hypr/hyprtoolkit.conf b/config/dot/hypr/hyprtoolkit.conf index 64e4b95..063fac8 100644 --- a/config/dot/hypr/hyprtoolkit.conf +++ b/config/dot/hypr/hyprtoolkit.conf @@ -9,7 +9,7 @@ # hyprland-guiutils hyprland-dialog / hyprland-run # hyprpolkitagent authentication prompts (via hyprland-qt-support) # -# Colours are Tokyo Night Moon, matching quickshell/config/Theme.qml and +# Colors are Tokyo Night Moon, matching quickshell/config/Theme.qml and # hypr/looks.lua. Format is hyprlang; path is fixed at # $XDG_CONFIG_HOME/hypr/hyprtoolkit.conf (confirmed in libhyprtoolkit). # ───────────────────────────────────────────────────────────────────────────── diff --git a/config/dot/hypr/input.lua b/config/dot/hypr/input.lua index a33501d..e27097c 100644 --- a/config/dot/hypr/input.lua +++ b/config/dot/hypr/input.lua @@ -22,10 +22,10 @@ hl.config({ repeat_rate = prefs.get("keyRepeatRate", 33), -- 1 = FOLLOW. The window under the pointer takes focus. This comment - -- previously claimed 1 was "click to focus, GNOME's behaviour", which + -- previously claimed 1 was "click to focus, GNOME's behavior", which -- is the opposite of what Hyprland does -- `hyprctl descriptions` gives -- map: [{"separate":3},{"detached":2},{"follow":1},{"disabled":0}], - -- so click-to-focus is 0. Changing the shipped value is a behaviour + -- so click-to-focus is 0. Changing the shipped value is a behavior -- decision rather than a correction, so the value is left alone and -- only the description is fixed; Settings exposes all four. follow_mouse = prefs.getInt("followMouse", 1), diff --git a/config/dot/hypr/keybinds.lua b/config/dot/hypr/keybinds.lua index a27a3f1..38fd760 100644 --- a/config/dot/hypr/keybinds.lua +++ b/config/dot/hypr/keybinds.lua @@ -118,7 +118,7 @@ bind(mod .. " + SHIFT + F", hl.dsp.exec_cmd(qs("focus", "reveal")), { descriptio -- which Hyprland has no equivalent for. bind(mod .. " + grave", hl.dsp.exec_cmd(qs("overview", "toggle")), { description = "Overview" }) --- Notification centre. +-- Notification center. bind(mod .. " + B", hl.dsp.exec_cmd(qs("notifications", "toggle")), { description = "Notifications" }) -- Screenshot / screen record. One key, then pick screen / window / region and @@ -133,8 +133,8 @@ bind("ALT + Print", hl.dsp.exec_cmd(qs("capture", "windowNow")), { description = bind(mod .. " + SHIFT + S", hl.dsp.exec_cmd(qs("screen-intelligence", "open")), { description = "Screen Intelligence" }) --- Colour picker: copies the hex under the cursor to the clipboard. -bind(mod .. " + SHIFT + P", hl.dsp.exec_cmd("hyprpicker -a -f hex"), { description = "Colour picker" }) +-- Color picker: copies the hex under the cursor to the clipboard. +bind(mod .. " + SHIFT + P", hl.dsp.exec_cmd("hyprpicker -a -f hex"), { description = "Color picker" }) -- ── Window management ─────────────────────────────────────────────────────── bind(mod .. " + Q", hl.dsp.window.close(), { description = "Close window" }) @@ -182,7 +182,7 @@ bind(mod .. " + CTRL + L", hl.dsp.window.swap({ direction = "r" }), { descriptio -- -- Forge resized one named edge at a time. Hyprland resizes the active window -- along an axis and lets the layout decide which edge actually moves, so the --- eight Forge keys collapse onto four behaviours. The pairing is kept +-- eight Forge keys collapse onto four behaviors. The pairing is kept -- consistent with the original: Y/B/O/M are horizontal, I/P/U/N are vertical, -- and "increase" always grows while "decrease" always shrinks. local step = 60 @@ -192,7 +192,7 @@ bind(mod .. " + SHIFT + B", hl.dsp.window.resize({ x = -step, y = 0, relative = bind(mod .. " + SHIFT + M", hl.dsp.window.resize({ x = -step, y = 0, relative = true }), { repeating = true, description = "Narrower" }) bind(mod .. " + SHIFT + I", hl.dsp.window.resize({ x = 0, y = step, relative = true }), { repeating = true, description = "Taller" }) bind(mod .. " + SHIFT + U", hl.dsp.window.resize({ x = 0, y = step, relative = true }), { repeating = true, description = "Taller" }) --- SUPER+SHIFT+P was double-bound with the colour picker above; moved to +-- SUPER+SHIFT+P was double-bound with the color picker above; moved to -- Comma, which continues the bottom-row cluster (B/M/N) this axis already -- uses rather than landing on an arbitrary free key. bind(mod .. " + SHIFT + Comma", hl.dsp.window.resize({ x = 0, y = -step, relative = true }), { repeating = true, description = "Shorter" }) @@ -227,7 +227,7 @@ bind(mod .. " + mouse:273", hl.dsp.window.resize(), { mouse = true, description -- moving right past the last workspace creates a new one, and moving left from -- the first clamps instead of wrapping. --- Behaviour for the relative/cyclic binds below. These are Hyprland's own +-- Behavior for the relative/cyclic binds below. These are Hyprland's own -- `binds:` options -- not part of general/dwindle -- and have no other home -- in the config, so they are read here rather than in looks.lua. hl.config({ @@ -259,18 +259,18 @@ end bind(mod .. " + mouse_down", hl.dsp.focus({ workspace = "+1" }), { description = "Workspace right" }) bind(mod .. " + mouse_up", hl.dsp.focus({ workspace = "-1" }), { description = "Workspace left" }) --- Minimise, as far as Hyprland has one. +-- Minimize, as far as Hyprland has one. -- --- Hyprland has no minimise: it receives the request (the binary has +-- Hyprland has no minimize: it receives the request (the binary has -- setSetMinimized handlers for xdg, XWayland and foreign-toplevel) but exposes -- no dispatcher, no config option and not even an event to hook, so titlebar --- minimise buttons are inert and cannot be made to work. A tiling WM has no +-- minimize buttons are inert and cannot be made to work. A tiling WM has no -- iconified state and no taskbar to restore from. -- -- The scratchpad is the honest equivalent: the window goes away, and the same -- key brings it back. Bound to X to match the muscle memory it replaces. -bind(mod .. " + X", hl.dsp.workspace.toggle_special("scratch"), { description = "Toggle scratchpad (restore minimised)" }) -bind(mod .. " + SHIFT + X", hl.dsp.window.move({ workspace = "special:scratch" }), { description = "Minimise to scratchpad" }) +bind(mod .. " + X", hl.dsp.workspace.toggle_special("scratch"), { description = "Toggle scratchpad (restore minimized)" }) +bind(mod .. " + SHIFT + X", hl.dsp.window.move({ workspace = "special:scratch" }), { description = "Minimize to scratchpad" }) -- ── Session ───────────────────────────────────────────────────────────────── -- GNOME's lock was SUPER+L, which is "focus right" here, so lock moves to diff --git a/config/dot/hypr/looks.lua b/config/dot/hypr/looks.lua index 423a13b..3a97d90 100644 --- a/config/dot/hypr/looks.lua +++ b/config/dot/hypr/looks.lua @@ -1,7 +1,7 @@ -- ───────────────────────────────────────────────────────────────────────────── -- Look and feel -- Tokyo Night Moon -- --- Colours here must stay in sync with quickshell/config/Theme.qml. +-- Colors here must stay in sync with quickshell/config/Theme.qml. -- accent user-selectable, see `accents` below -- blue (#82aaff) ships -- bg #222436 base -- @@ -53,7 +53,7 @@ hl.config({ -- from Theme.accent/Theme.accentSecondary on every scheme change -- too, since each accent carries a separate pair per scheme. active_border = { colors = { "rgba(" .. accentStart .. "ee)", "rgba(" .. accentEnd .. "ee)" }, angle = 115 }, - -- The neutral inactive role follows the colour scheme because a + -- The neutral inactive role follows the color scheme because a -- dark neutral disappears against a light desktop. -- services/ColorScheme.qml applies the same values live; this is -- the value a fresh session starts from. @@ -193,12 +193,12 @@ hl.config({ -- Let a crashed lock screen be recovered rather than stranding you. allow_session_lock_restore = true, - -- Don't let apps steal focus by shouting; matches GNOME's behaviour. + -- Don't let apps steal focus by shouting; matches GNOME's behavior. focus_on_activate = false, }, render = { - -- Colour management is stable and on by default in 0.56. + -- Color management is stable and on by default in 0.56. cm_enabled = true, -- 1 = automatically flip the monitor into HDR for fullscreen content diff --git a/config/dot/hypr/monitors.lua b/config/dot/hypr/monitors.lua index 5121fcf..5b308e6 100644 --- a/config/dot/hypr/monitors.lua +++ b/config/dot/hypr/monitors.lua @@ -25,7 +25,7 @@ local prefs = require("prefs") -- x = 0, y = 0, primary = true, -- } } -- --- Only mode, scale, and transform are read. Colour management and bit depth +-- Only mode, scale, and transform are read. Color management and bit depth -- stay here, because those are the settings with a documented reason attached -- (see the header) rather than preferences, and a settings page has no way to -- explain the screencopy tradeoff at the moment you would be changing it. @@ -147,7 +147,7 @@ hl.monitor({ }) -- Other connected outputs use the same validated per-output store. They keep --- automatic placement and the compositor's normal colour policy; DP-2 alone +-- automatic placement and the compositor's normal color policy; DP-2 alone -- carries the panel-specific 10-bit policy documented above. for output, _ in pairs(displays) do if output ~= "DP-2" then diff --git a/config/dot/hypr/prefs.lua b/config/dot/hypr/prefs.lua index cafe792..bfe9432 100644 --- a/config/dot/hypr/prefs.lua +++ b/config/dot/hypr/prefs.lua @@ -16,7 +16,7 @@ -- cannot drift apart. -- -- Nothing here may raise. A missing, empty, truncated, or actively malformed --- file must cost the user nothing worse than their customisations; it must +-- file must cost the user nothing worse than their customizations; it must -- never cost them a working compositor. Every failure path returns the caller's -- fallback. -- ───────────────────────────────────────────────────────────────────────────── diff --git a/config/dot/hypr/rules.lua b/config/dot/hypr/rules.lua index 75e2cfe..bf77de0 100644 --- a/config/dot/hypr/rules.lua +++ b/config/dot/hypr/rules.lua @@ -69,7 +69,7 @@ hl.window_rule({ float = true, }) --- Settings-style utility windows and pickers: float and centre, like GNOME did. +-- Settings-style utility windows and pickers: float and center, like GNOME did. hl.window_rule({ match = { class = "^(pavucontrol|org\\.pulseaudio\\.pavucontrol|nm-connection-editor|blueman-manager|org\\.gnome\\.Settings)$" }, float = true, @@ -150,7 +150,7 @@ hl.layer_rule({ ignore_alpha = 0.3, }) --- Popovers: calendar, quick settings, notification centre, tray menus. +-- Popovers: calendar, quick settings, notification center, tray menus. hl.layer_rule({ name = "qs-popover", match = { namespace = "^qs-popover" }, diff --git a/config/dot/kitty/themes/tokyonight-moon.conf b/config/dot/kitty/themes/tokyonight-moon.conf index ca70424..b16ba24 100644 --- a/config/dot/kitty/themes/tokyonight-moon.conf +++ b/config/dot/kitty/themes/tokyonight-moon.conf @@ -1,7 +1,7 @@ # Tokyo Night Moon — the dark theme Panama ships. # # Extracted from kitty.conf so the two schemes can be swapped. kitty.conf -# includes current-theme.conf, which Panama generates from the colour scheme +# includes current-theme.conf, which Panama generates from the color scheme # setting; that generated file is gitignored because it is machine state. # # Live changes go through `kitty @ set-colors`, which is why kitty.conf enables diff --git a/config/dot/nvim/lua/config/panama.lua b/config/dot/nvim/lua/config/panama.lua index bd43fb0..a37a2e8 100644 --- a/config/dot/nvim/lua/config/panama.lua +++ b/config/dot/nvim/lua/config/panama.lua @@ -6,7 +6,7 @@ -- Hyprland config read. -- -- Nothing here may raise. A missing or malformed settings file must cost the --- user their colour scheme preference and nothing else; editing text is more +-- user their color scheme preference and nothing else; editing text is more -- important than matching the desktop. local M = {} diff --git a/config/dot/nvim/lua/plugins/colorscheme.lua b/config/dot/nvim/lua/plugins/colorscheme.lua index 236ee5b..69a4308 100644 --- a/config/dot/nvim/lua/plugins/colorscheme.lua +++ b/config/dot/nvim/lua/plugins/colorscheme.lua @@ -1,12 +1,12 @@ --- Tokyo Night, following the desktop's colour scheme. +-- Tokyo Night, following the desktop's color scheme. -- -- Moon when Panama is dark, Day when it is light. Same theme family either way, -- so the editor keeps the identity the rest of the desktop has rather than -- becoming a different-looking application when the scheme flips. -- -- The readability fixes below are deliberately dark-only. They were written --- against Moon's palette -- a pale comment colour, a mid-grey gutter -- and --- applying them to Day would put light grey text on a light background, which +-- against Moon's palette -- a pale comment color, a mid-gray gutter -- and +-- applying them to Day would put light gray text on a light background, which -- is exactly the legibility problem they exist to solve, inverted. local panama = require("config.panama") diff --git a/config/dot/ohmyposh/zen.toml b/config/dot/ohmyposh/zen.toml index 7edb6f0..dd58828 100644 --- a/config/dot/ohmyposh/zen.toml +++ b/config/dot/ohmyposh/zen.toml @@ -22,7 +22,7 @@ console_title_template = '{{ .Shell }} in {{ .Folder }}' [[blocks.segments]] type = 'git' style = 'plain' - foreground = 'p:grey' + foreground = 'p:gray' background = 'transparent' template = ' {{ .HEAD }}{{ if or (.Working.Changed) (.Staging.Changed) }}*{{ end }} {{ if gt .Behind 0 }}⇣{{ end }}{{ if gt .Ahead 0 }}⇡{{ end }}' diff --git a/config/dot/quickshell/config/DesktopPreferences.qml b/config/dot/quickshell/config/DesktopPreferences.qml index 528a698..fba6f16 100644 --- a/config/dot/quickshell/config/DesktopPreferences.qml +++ b/config/dot/quickshell/config/DesktopPreferences.qml @@ -101,7 +101,7 @@ Singleton { const raw = (parsed && typeof parsed === "object") ? parsed : {}; // Upgrade before anything reads a value. A stored key the current - // schema no longer recognises is carried through untouched and silently + // schema no longer recognizes is carried through untouched and silently // stops taking effect, so the conversion has to happen here rather than // being noticed later by whoever owns that setting. const result = Migrations.apply(raw); diff --git a/config/dot/quickshell/config/HomePreferences.qml b/config/dot/quickshell/config/HomePreferences.qml index 4aa4650..e6373d7 100644 --- a/config/dot/quickshell/config/HomePreferences.qml +++ b/config/dot/quickshell/config/HomePreferences.qml @@ -19,7 +19,7 @@ Singleton { printErrors: false atomicWrites: true onSaved: root.saveError = "" - onSaveFailed: error => root.saveError = "Could not save Home favourites." + onSaveFailed: error => root.saveError = "Could not save Home favorites." JsonAdapter { id: values diff --git a/config/dot/quickshell/config/Migrations.qml b/config/dot/quickshell/config/Migrations.qml index 05df23f..b7181ef 100644 --- a/config/dot/quickshell/config/Migrations.qml +++ b/config/dot/quickshell/config/Migrations.qml @@ -5,7 +5,7 @@ pragma Singleton // The schema is the single source of truth for what a setting IS, but it cannot // describe what a setting USED to be. Renaming a key, changing its units, or // splitting one setting into two all leave a stored value that the new schema -// does not recognise -- and an unrecognised key is silently carried through +// does not recognize -- and an unrecognized key is silently carried through // untouched, so the user's choice simply stops taking effect with nothing to // say why. That is the failure this exists to prevent. // diff --git a/config/dot/quickshell/config/PreferenceSchema.qml b/config/dot/quickshell/config/PreferenceSchema.qml index bac48ac..a37b34a 100644 --- a/config/dot/quickshell/config/PreferenceSchema.qml +++ b/config/dot/quickshell/config/PreferenceSchema.qml @@ -171,7 +171,7 @@ Singleton { unit: "px", group: "windows", label: "Inner gaps", - detail: "Space between neighbouring tiled windows", + detail: "Space between neighboring tiled windows", hypr: { path: ["general", "gaps_in"], option: "general:gaps_in", readAs: "css" } }, { @@ -278,7 +278,7 @@ Singleton { // ── Master layout ─────────────────────────────────────────────────── // Only meaningful when the tiling layout is Master and stack. Offering // that layout with none of its options was an omission: it is the one - // layout whose whole behaviour is in these settings. + // layout whose whole behavior is in these settings. { key: "masterFactor", type: "real", def: 0.55, min: 0.1, max: 0.9, step: 0.05, group: "master", @@ -295,7 +295,7 @@ Singleton { { value: "right", label: "Right" }, { value: "top", label: "Top" }, { value: "bottom", label: "Bottom" }, - { value: "center", label: "Centre" } + { value: "center", label: "Center" } ], hypr: { path: ["master", "orientation"], option: "master:orientation", readAs: "str" } }, @@ -429,7 +429,7 @@ Singleton { { key: "keyboardVariant", type: "string", def: "", group: "input", // Same shape as the layout list and for the same reason: this is - // serialised into an hl.config string. + // serialized into an hl.config string. pattern: "^$|^[a-z0-9_]{1,24}(,[a-z0-9_]{1,24})*$", label: "Layout variant", detail: "XKB variant, such as dvorak or colemak. Empty for the standard layout", @@ -475,7 +475,7 @@ Singleton { // The compositor publishes the authoritative mapping itself -- // `hyprctl descriptions` gives // map: [{"separate":3},{"detached":2},{"follow":1},{"disabled":0}] - // -- so a desktop labelled "Click to focus" was in fact following + // -- so a desktop labeled "Click to focus" was in fact following // the pointer, and the way to actually get click-to-focus was to // choose "Never". Value 3 was missing entirely. // @@ -852,14 +852,14 @@ Singleton { detail: "A time earlier than the start simply means the next morning" }, - // ── Colour scheme ─────────────────────────────────────────────────── + // ── Color scheme ─────────────────────────────────────────────────── // Light is Tokyo Night Day, the official light variant, rather than a // palette invented to merely not be dark. Both share the same hues at // different lightness, which is what keeps the Prism identity intact // across the switch. // // services/ColorScheme.qml pushes the choice to GTK and to the - // compositor's border colours, because an application toolbar or a + // compositor's border colors, because an application toolbar or a // window border still wearing the other scheme is more jarring than // either scheme on its own. { @@ -873,10 +873,10 @@ Singleton { }, { key: "accentName", type: "enum", def: "blue", group: "appearance", - label: "Accent colour", + label: "Accent color", detail: "Drives the focused window border, the bar hairline, and every active state", - // NAMED accents, not a free colour. Each name carries a curated - // pair per scheme, because one hex cannot serve both: a colour + // NAMED accents, not a free color. Each name carries a curated + // pair per scheme, because one hex cannot serve both: a color // legible on the dark ground is usually illegible on the light one. // The palette and its measured contrast live in config/Theme.qml, // which is also what stops this list drifting from what is drawn. @@ -998,7 +998,7 @@ Singleton { }, // ── Application titlebars ────────────────────────────────────────── - // These affect applications that honour GNOME's window preferences. + // These affect applications that honor GNOME's window preferences. // Hyprland itself has no server-side titlebar buttons, so minimize is // deliberately absent rather than presented as a switch that lies. { @@ -1061,7 +1061,7 @@ Singleton { // ── Which GPU the vitals readout tracks ───────────────────────────── // A sysfs path rather than a card number, because the number is neither // stable across machines nor meaningful. Constrained to the one shape - // that can be read for utilisation; VitalsWidget hides itself when the + // that can be read for utilization; VitalsWidget hides itself when the // path is unreadable, so a stale value degrades to no readout rather // than a wrong one. { @@ -1077,7 +1077,7 @@ Singleton { // Coordinates rather than a place name, because that is what Open-Meteo // takes and it needs no API key. weatherLocation is only the label shown // in the UI; it is never sent anywhere, so it can say whatever makes the - // reading recognisable. + // reading recognizable. { key: "weatherLatitude", type: "real", def: 27.7375, min: -90, max: 90, step: 0.0001, group: "weather", internal: true, @@ -1212,7 +1212,7 @@ Singleton { // ── Display configuration ─────────────────────────────────────────── // { "": { mode, scale, transform, x, y, primary } }, applied by - // hypr/monitors.lua on top of the shipped values. Colour management and + // hypr/monitors.lua on top of the shipped values. Color management and // bit depth are deliberately not here: those carry a documented // screencopy tradeoff that a settings page cannot explain at the moment // you would be changing it. @@ -1325,7 +1325,7 @@ Singleton { case "string": { const text = typeof value === "string" ? value : String(value); // A constrained string is rejected rather than sanitised. Several - // of these are serialised into an hl.config payload, and quietly + // of these are serialized into an hl.config payload, and quietly // stripping characters would turn a typo into a different setting // instead of an error the user can see. if (entry.pattern && !new RegExp(entry.pattern).test(text)) diff --git a/config/dot/quickshell/config/Settings.qml b/config/dot/quickshell/config/Settings.qml index fbfccc2..99185df 100644 --- a/config/dot/quickshell/config/Settings.qml +++ b/config/dot/quickshell/config/Settings.qml @@ -62,7 +62,7 @@ Singleton { readonly property int focusDurationMinutes: DesktopPreferences.get("focusDurationMinutes") // ── Dock ──────────────────────────────────────────────────────────────── - // Pinned apps, in order, taken from the GNOME dash favourites. + // Pinned apps, in order, taken from the GNOME dash favorites. readonly property var dockPinned: DesktopPreferences.get("dockPinned") // Dash-to-Dock was set to intellihide against all windows: the dock hides diff --git a/config/dot/quickshell/config/Theme.qml b/config/dot/quickshell/config/Theme.qml index d7eae15..c694ead 100644 --- a/config/dot/quickshell/config/Theme.qml +++ b/config/dot/quickshell/config/Theme.qml @@ -1,9 +1,9 @@ pragma Singleton // ───────────────────────────────────────────────────────────────────────────── -// Tokyo Night Moon — the single source of truth for every colour, radius, +// Tokyo Night Moon — the single source of truth for every color, radius, // duration and font in the shell. Nothing below this file should hardcode a -// colour; if you find yourself writing "#" outside this file, add a token here. +// color; if you find yourself writing "#" outside this file, add a token here. // // The bar keeps GNOME's 36px information density but sits directly on the // desktop, edge to edge. The dock retains the former glass vocabulary: bottom, @@ -18,7 +18,7 @@ import QtQuick Singleton { id: root - // ── Colour scheme ─────────────────────────────────────────────────────── + // ── Color scheme ─────────────────────────────────────────────────────── // Tokyo Night ships an official light variant (Day), so light mode is that // rather than a palette invented to merely not be dark. The two share the // same hues at different lightness, which is what lets the Prism identity @@ -46,12 +46,12 @@ Singleton { // // `accent` is the primary and carries every state meaning (focused, active, // on). `accentSecondary` never appears alone, only as the far end of a - // gradient. That restraint is the whole point: the two colours meeting is - // the signature, so the second colour stops being special the moment it is + // gradient. That restraint is the whole point: the two colors meeting is + // the signature, so the second color stops being special the moment it is // used as a flat fill. // - // NAMED accents rather than a free colour. Each name carries a curated - // triple per scheme, because an arbitrary hex cannot work in both: a colour + // NAMED accents rather than a free color. Each name carries a curated + // triple per scheme, because an arbitrary hex cannot work in both: a color // legible on the Moon background is usually illegible on the Day one, and a // picker that lets someone choose an unreadable desktop is not a feature. // Every pair below measures at least 3:1 against the ground it sits on. @@ -72,7 +72,7 @@ Singleton { // Falls back to blue for an unknown name, so a settings file written by a // newer Panama -- or edited by hand -- degrades to the shipped identity - // rather than to an undefined colour. + // rather than to an undefined color. readonly property var accentPair: root.accents[DesktopPreferences.get("accentName")] ?? root.accents["blue"] readonly property color accent: root.dark ? root.accentPair.dark : root.accentPair.light @@ -136,7 +136,7 @@ Singleton { // Nerd Font, used ONLY to draw icon glyphs — never for text. It is the // pragmatic alternative to freedesktop symbolic icons, which ship with a - // hardcoded dark fill Qt will not recolour (see widgets/ThemedIcon.qml). + // hardcoded dark fill Qt will not recolor (see widgets/ThemedIcon.qml). readonly property string fontMono: DesktopPreferences.get("iconFont") // Apply to any text whose digits change in place — clocks, percentages, @@ -180,7 +180,7 @@ Singleton { } // Blend two tokens — used for hover/pressed states so we never invent a - // colour that isn't derived from the palette. + // color that isn't derived from the palette. function mix(a: color, b: color, ratio: real): color { return Qt.rgba(a.r + (b.r - a.r) * ratio, a.g + (b.g - a.g) * ratio, a.b + (b.b - a.b) * ratio, a.a + (b.a - a.a) * ratio); } @@ -191,7 +191,7 @@ Singleton { // the active workspace pill and slider fills. // // Where the gradient runs left-to-right the blue leads, because the eye - // reads left first and blue is the colour that carries meaning. + // reads left first and blue is the color that carries meaning. readonly property real prismStart: 0.22 readonly property real prismEnd: 0.78 diff --git a/config/dot/quickshell/displays-harness.qml b/config/dot/quickshell/displays-harness.qml index 5f1dbf5..780580f 100644 --- a/config/dot/quickshell/displays-harness.qml +++ b/config/dot/quickshell/displays-harness.qml @@ -83,7 +83,7 @@ ShellRoot { } function refreshIdentityFixture(): string { - const modes = Displays.normaliseModes([ + const modes = Displays.normalizeModes([ "1920x1080@59.94Hz", "1920x1080@60.00Hz" ]); diff --git a/config/dot/quickshell/migrations-harness.qml b/config/dot/quickshell/migrations-harness.qml index ae65a11..6bd2f40 100644 --- a/config/dot/quickshell/migrations-harness.qml +++ b/config/dot/quickshell/migrations-harness.qml @@ -3,7 +3,7 @@ // // Fixture steps rather than the real list: the real one is empty until the // first breaking schema change, and a mechanism that has never been run against -// a failing step is not one to discover the behaviour of during an upgrade. +// a failing step is not one to discover the behavior of during an upgrade. import Quickshell import QtQuick diff --git a/config/dot/quickshell/modules/bar/Bar.qml b/config/dot/quickshell/modules/bar/Bar.qml index 1f4e5ef..8df1eee 100644 --- a/config/dot/quickshell/modules/bar/Bar.qml +++ b/config/dot/quickshell/modules/bar/Bar.qml @@ -10,7 +10,7 @@ // Bar {} // } // -// Layout mirrors GNOME's: workspaces + vitals left, clock + weather centre, +// Layout mirrors GNOME's: workspaces + vitals left, clock + weather center, // media + tray + status cluster right. import Quickshell @@ -83,7 +83,7 @@ PanelWindow { } } - // ── Centre ────────────────────────────────────────────────────────── + // ── Center ────────────────────────────────────────────────────────── Row { anchors.horizontalCenter: parent.horizontalCenter anchors.verticalCenter: parent.verticalCenter diff --git a/config/dot/quickshell/modules/bar/Clock.qml b/config/dot/quickshell/modules/bar/Clock.qml index 9ae6dd5..aa49e81 100644 --- a/config/dot/quickshell/modules/bar/Clock.qml +++ b/config/dot/quickshell/modules/bar/Clock.qml @@ -1,4 +1,4 @@ -// The centre clock, kept in the same place and the same format GNOME had it: +// The center clock, kept in the same place and the same format GNOME had it: // weekday, date, 12-hour time with seconds. Clicking it opens the calendar, // exactly like GNOME's date menu. @@ -35,7 +35,7 @@ Pill { anchors.verticalCenter: parent.verticalCenter text: Qt.formatDateTime(clock.date, root.format) font.family: Theme.fontFamily - // Seconds tick once a second in the centre of the bar; without tabular + // Seconds tick once a second in the center of the bar; without tabular // figures the whole clock shifts sideways on every digit change. font.features: Theme.tabularFigures font.pixelSize: Theme.fontSize diff --git a/config/dot/quickshell/modules/bar/StatusCluster.qml b/config/dot/quickshell/modules/bar/StatusCluster.qml index 312fcf8..036e37f 100644 --- a/config/dot/quickshell/modules/bar/StatusCluster.qml +++ b/config/dot/quickshell/modules/bar/StatusCluster.qml @@ -62,7 +62,7 @@ Pill { if (!root.wifiNetwork) return "\u{F092D}"; // md-wifi_strength_off - // NetworkManager reports strength 0-100; some backends normalise to + // NetworkManager reports strength 0-100; some backends normalize to // 0-1, so accept either rather than showing one bar forever. const raw = root.wifiNetwork.signalStrength ?? 0; const strength = raw <= 1 ? raw * 100 : raw; diff --git a/config/dot/quickshell/modules/bar/VitalsField.qml b/config/dot/quickshell/modules/bar/VitalsField.qml index 5deb542..6af79ba 100644 --- a/config/dot/quickshell/modules/bar/VitalsField.qml +++ b/config/dot/quickshell/modules/bar/VitalsField.qml @@ -1,5 +1,5 @@ // One glyph + percentage pair inside VitalsWidget. Split out so the three -// fields cannot drift apart in spacing, width or colour thresholds. +// fields cannot drift apart in spacing, width or color thresholds. import QtQuick import qs.config diff --git a/config/dot/quickshell/modules/bar/VitalsWidget.qml b/config/dot/quickshell/modules/bar/VitalsWidget.qml index 9d1f85b..b0f7940 100644 --- a/config/dot/quickshell/modules/bar/VitalsWidget.qml +++ b/config/dot/quickshell/modules/bar/VitalsWidget.qml @@ -2,7 +2,7 @@ // Vitals extension was configured with (_processor_usage_, _memory_usage_, // _gpu#1_usage_). // -// Values are colour-coded rather than graphed: at bar size a number you can +// Values are color-coded rather than graphed: at bar size a number you can // glance at beats a sparkline you have to squint at. import QtQuick diff --git a/config/dot/quickshell/modules/bar/Workspaces.qml b/config/dot/quickshell/modules/bar/Workspaces.qml index 1105b2c..784b5c8 100644 --- a/config/dot/quickshell/modules/bar/Workspaces.qml +++ b/config/dot/quickshell/modules/bar/Workspaces.qml @@ -36,7 +36,7 @@ Item { implicitWidth: row.implicitWidth + 12 // Full bar height makes (0, 0) part of the wheel target. The dots stay - // optically centred by the row and active-pill geometry below. + // optically centered by the row and active-pill geometry below. implicitHeight: Theme.barHeight // Scroll over the padding either side of the row, not just over a dot. @@ -59,7 +59,7 @@ Item { border.width: 0 // QTBUG-137166: rounded rects can lose their corners // The prism, as a fill rather than a hairline. This is the one element - // in the bar that is always coloured, so it is where the pair belongs. + // in the bar that is always colored, so it is where the pair belongs. gradient: Gradient { orientation: Gradient.Horizontal GradientStop { diff --git a/config/dot/quickshell/modules/capture/CaptureBar.qml b/config/dot/quickshell/modules/capture/CaptureBar.qml index 221c7f8..477c2a6 100644 --- a/config/dot/quickshell/modules/capture/CaptureBar.qml +++ b/config/dot/quickshell/modules/capture/CaptureBar.qml @@ -1,7 +1,7 @@ // The floating control panel at the bottom of the capture overlay. // // Layout is a deliberate copy of GNOME 42's screenshot UI: the area segmented -// control on top, and below it the shutter dead-centre with "Show Pointer" on +// control on top, and below it the shutter dead-center with "Show Pointer" on // the left and the screenshot/screencast switch on the right. import QtQuick @@ -13,7 +13,7 @@ Rectangle { signal captureRequested - // Set by the overlay so the shutter can grey out when Window mode has + // Set by the overlay so the shutter can gray out when Window mode has // nothing pickable (no Hyprland, or an empty workspace). property bool captureEnabled: true diff --git a/config/dot/quickshell/modules/capture/ModeButton.qml b/config/dot/quickshell/modules/capture/ModeButton.qml index 49610fb..797c211 100644 --- a/config/dot/quickshell/modules/capture/ModeButton.qml +++ b/config/dot/quickshell/modules/capture/ModeButton.qml @@ -1,7 +1,7 @@ // One segment of the Screen / Window / Selection control. // // Icons are Nerd Font glyphs rather than freedesktop icons on purpose: the -// Adwaita "symbolic" SVGs are flat black and Qt, unlike GTK, will not recolour +// Adwaita "symbolic" SVGs are flat black and Qt, unlike GTK, will not recolor // them, so they'd be invisible on this dark overlay. import QtQuick diff --git a/config/dot/quickshell/modules/capture/SelectionLayer.qml b/config/dot/quickshell/modules/capture/SelectionLayer.qml index 69c034d..6a161c6 100644 --- a/config/dot/quickshell/modules/capture/SelectionLayer.qml +++ b/config/dot/quickshell/modules/capture/SelectionLayer.qml @@ -1,6 +1,6 @@ // Selection mode: a GNOME-style rubber band over the frozen screen. // -// Behaviours copied from GNOME 42: the overlay opens with a sensible centred +// Behaviors copied from GNOME 42: the overlay opens with a sensible centered // selection already in place (so the shutter is immediately useful), dragging // inside moves it, dragging a corner resizes from the opposite corner, and // dragging anywhere else starts a fresh band. @@ -52,7 +52,7 @@ Item { root.resetSelection(); } - // Centred, roughly the middle half of the screen. + // Centered, roughly the middle half of the screen. function resetSelection(): void { if (root.width <= 0 || root.height <= 0) return; diff --git a/config/dot/quickshell/modules/datemenu/CalendarGrid.qml b/config/dot/quickshell/modules/datemenu/CalendarGrid.qml index b9c4cad..1e8f9a8 100644 --- a/config/dot/quickshell/modules/datemenu/CalendarGrid.qml +++ b/config/dot/quickshell/modules/datemenu/CalendarGrid.qml @@ -1,11 +1,11 @@ // The month grid from GNOME's date menu. // // Six week rows always, so the grid height never changes as you page through -// months and the panel below it never jumps. Days belonging to the neighbouring +// months and the panel below it never jumps. Days belonging to the neighboring // months fill the edges, dimmed. Today wears the accent. // // Days become real navigation targets now that Evolution Data Server backs the -// panel. Up to three source-coloured markers show whether a date has events. +// panel. Up to three source-colored markers show whether a date has events. import Quickshell import QtQuick @@ -134,7 +134,7 @@ Item { } } - // Centred on the row rather than between the pill and the arrows, + // Centered on the row rather than between the pill and the arrows, // so it does not shift sideways when the pill appears. Text { anchors.centerIn: parent diff --git a/config/dot/quickshell/modules/datemenu/DateMenu.qml b/config/dot/quickshell/modules/datemenu/DateMenu.qml index 84acff6..8ee8030 100644 --- a/config/dot/quickshell/modules/datemenu/DateMenu.qml +++ b/config/dot/quickshell/modules/datemenu/DateMenu.qml @@ -1,12 +1,12 @@ // GNOME's date/time menu: calendar, ongoing activity and messages in one panel, -// dropping from the top centre because that is where GNOME put it and the +// dropping from the top center because that is where GNOME put it and the // muscle memory is the whole point. // // A layer-shell surface rather than a PopupWindow because the inline reply // fields have to be typeable, and because the clock it hangs from is owned by a // different module. // -// Layer-shell centres a surface on whichever axis it is not anchored to, so +// Layer-shell centers a surface on whichever axis it is not anchored to, so // anchoring only `top` is what puts it in the middle. import QtQuick @@ -87,7 +87,7 @@ PanelWindow { } // Grows out of the top edge it is anchored to, rather than out of its - // own centre — the panel should look like it came from the bar. + // own center — the panel should look like it came from the bar. transform: Scale { id: openScale origin.x: surface.width / 2 diff --git a/config/dot/quickshell/modules/dock/DockBody.qml b/config/dot/quickshell/modules/dock/DockBody.qml index b9b4be5..940ee6f 100644 --- a/config/dot/quickshell/modules/dock/DockBody.qml +++ b/config/dot/quickshell/modules/dock/DockBody.qml @@ -172,14 +172,14 @@ Rectangle { } } - // Centred on the hovered item, clamped inside the dock. Reads the item's + // Centered on the hovered item, clamped inside the dock. Reads the item's // x directly (rather than mapToItem) so the binding re-evaluates when // the row reflows. x: { if (!root.hoveredItem) return 0; - const centre = row.x + root.hoveredItem.x + root.hoveredItem.width / 2; - return Math.max(4, Math.min(root.width - width - 4, centre - width / 2)); + const center = row.x + root.hoveredItem.x + root.hoveredItem.width / 2; + return Math.max(4, Math.min(root.width - width - 4, center - width / 2)); } y: -height - 8 diff --git a/config/dot/quickshell/modules/dock/DockItem.qml b/config/dot/quickshell/modules/dock/DockItem.qml index 0cee40b..26a46de 100644 --- a/config/dot/quickshell/modules/dock/DockItem.qml +++ b/config/dot/quickshell/modules/dock/DockItem.qml @@ -1,5 +1,5 @@ // One dock icon: the app, its running-window dots, hover scale and click -// behaviour. Reproduces Dash-to-Dock's item: 48px icon, up to four dots +// behavior. Reproduces Dash-to-Dock's item: 48px icon, up to four dots // underneath, grow-on-hover, click to focus / cycle / launch. import Quickshell @@ -72,7 +72,7 @@ Item { } // Last resort for an app with no resolvable icon: an initial, which is - // still recognisable, unlike the theme's broken-icon placeholder. + // still recognizable, unlike the theme's broken-icon placeholder. Rectangle { anchors.fill: parent visible: root.iconSource === "" @@ -155,7 +155,7 @@ Item { return; // Quickshell reports the address without the 0x prefix Hyprland's - // window selector expects; normalise so either form works. + // window selector expects; normalize so either form works. if (next.address) { const addr = next.address.startsWith("0x") ? next.address : "0x" + next.address; Hyprland.dispatch(`hl.dsp.focus({ window = "address:${addr}" })`); diff --git a/config/dot/quickshell/modules/notifications/NotificationCard.qml b/config/dot/quickshell/modules/notifications/NotificationCard.qml index d494f39..1820762 100644 --- a/config/dot/quickshell/modules/notifications/NotificationCard.qml +++ b/config/dot/quickshell/modules/notifications/NotificationCard.qml @@ -1,7 +1,7 @@ // One notification, rendered GNOME-style: app icon, app name, summary, body, // optional image, action buttons and an inline reply box. // -// Shared by the toasts and the notification centre so a notification looks the +// Shared by the toasts and the notification center so a notification looks the // same wherever you meet it. // // IconButton/ThemedIcon come from the quicksettings module — they belong in @@ -21,7 +21,7 @@ Rectangle { required property var notification - // The centre renders a denser card than a toast banner. + // The center renders a denser card than a toast banner. property bool compact: false signal dismissed @@ -43,7 +43,7 @@ Rectangle { } } - // Critical notifications get a red edge rather than a colour wash, so the + // Critical notifications get a red edge rather than a color wash, so the // text contrast never changes. Rectangle { anchors.left: parent.left diff --git a/config/dot/quickshell/modules/overview/WorkspaceCard.qml b/config/dot/quickshell/modules/overview/WorkspaceCard.qml index 431cb2a..be6c5b7 100644 --- a/config/dot/quickshell/modules/overview/WorkspaceCard.qml +++ b/config/dot/quickshell/modules/overview/WorkspaceCard.qml @@ -1,6 +1,6 @@ // One workspace in the overview: a proportional card holding live thumbnails -// of its windows, labelled underneath. The focused workspace is outlined in the -// accent colour, as GNOME outlines the current workspace. +// of its windows, labeled underneath. The focused workspace is outlined in the +// accent color, as GNOME outlines the current workspace. // // A card with a null `workspace` is the trailing "new workspace" affordance // that dynamic-workspace setups (GNOME's, and Hyprland's) always show. diff --git a/config/dot/quickshell/modules/quicksettings/BluetoothList.qml b/config/dot/quickshell/modules/quicksettings/BluetoothList.qml index 42789fe..b596b57 100644 --- a/config/dot/quickshell/modules/quicksettings/BluetoothList.qml +++ b/config/dot/quickshell/modules/quicksettings/BluetoothList.qml @@ -114,7 +114,7 @@ Item { width: parent.width // BlueZ reports a plain freedesktop name ("audio-headphones"); - // the symbolic variant is the one that can be recoloured. + // the symbolic variant is the one that can be recolored. icon: deviceRow.modelData.icon !== "" ? deviceRow.modelData.icon + "-symbolic" : "bluetooth-symbolic" iconFallback: "bluetooth-symbolic" label: deviceRow.modelData.name || deviceRow.modelData.address diff --git a/config/dot/quickshell/modules/quicksettings/BrightnessControl.qml b/config/dot/quickshell/modules/quicksettings/BrightnessControl.qml index 8dc983a..bf70cef 100644 --- a/config/dot/quickshell/modules/quicksettings/BrightnessControl.qml +++ b/config/dot/quickshell/modules/quicksettings/BrightnessControl.qml @@ -29,7 +29,7 @@ Item { property real backlightValue: 0 readonly property int rowCount: (root.backlightAvailable ? 1 : 0) + Brightness.displays.length - readonly property bool labelled: root.rowCount > 1 + readonly property bool labeled: root.rowCount > 1 visible: root.rowCount > 0 implicitHeight: rows.implicitHeight @@ -89,7 +89,7 @@ Item { // Hyprland already knows what each output is called, so the // name comes from there rather than from a second source that // could disagree with the Displays page. The connector is the - // fallback, so a display is never an unlabelled slider. + // fallback, so a display is never an unlabeled slider. label: Displays.monitorNamed(modelData.connector)?.description || modelData.connector value: modelData.value / 100 onMoved: v => Brightness.set(modelData.bus, Math.round(v * 100)) @@ -113,7 +113,7 @@ Item { anchors.leftMargin: 6 anchors.rightMargin: 6 anchors.top: parent.top - visible: root.labelled + visible: root.labeled height: visible ? implicitHeight + 2 : 0 text: row.label color: Theme.fgDim @@ -124,7 +124,7 @@ Item { // The slider and its glyph share one strip so the two stay aligned // whether or not a caption sits above them. Anchoring the glyph to - // both a caption and a centre line instead would conflict, and an + // both a caption and a center line instead would conflict, and an // anchor set to undefined is not released. Item { id: control @@ -134,7 +134,7 @@ Item { height: 32 // ValueSlider draws its own leading icon, but symbolic icons need - // recolouring to be visible — see ThemedIcon. + // recoloring to be visible — see ThemedIcon. ThemedIcon { id: glyph anchors.left: parent.left diff --git a/config/dot/quickshell/modules/quicksettings/RowButton.qml b/config/dot/quickshell/modules/quicksettings/RowButton.qml index 6938edf..dbc7b48 100644 --- a/config/dot/quickshell/modules/quicksettings/RowButton.qml +++ b/config/dot/quickshell/modules/quicksettings/RowButton.qml @@ -95,7 +95,7 @@ Rectangle { } } - // Full-height rather than vertically centred so slot contents can anchor + // Full-height rather than vertically centered so slot contents can anchor // their own verticalCenter to it without a size loop. Row { id: trailingRow diff --git a/config/dot/quickshell/modules/settings/AccentPicker.qml b/config/dot/quickshell/modules/settings/AccentPicker.qml index a84ea42..cb7ec8f 100644 --- a/config/dot/quickshell/modules/settings/AccentPicker.qml +++ b/config/dot/quickshell/modules/settings/AccentPicker.qml @@ -2,10 +2,10 @@ // // Each swatch is drawn as the GRADIENT it will actually produce, not a flat // dot, because the gradient is the thing being chosen -- the focused window -// border, the bar hairline and every active state are the two colours meeting. +// border, the bar hairline and every active state are the two colors meeting. // A row of flat circles would misrepresent all of them. // -// Named accents rather than a colour wheel: each name carries a curated pair +// Named accents rather than a color wheel: each name carries a curated pair // per scheme, so every choice stays legible in both light and dark. See // config/Theme.qml for the palette and the reasoning. @@ -46,7 +46,7 @@ Flow { // The hit target is the whole swatch+label unit, not just the // 46px circle: the label exists specifically so someone with a - // colour vision deficiency can identify an accent without it, and + // color vision deficiency can identify an accent without it, and // a label that cannot itself be tapped defeats that. HoverHandler { cursorShape: Qt.PointingHandCursor @@ -66,7 +66,7 @@ Flow { anchors.horizontalCenter: parent.horizontalCenter color: "transparent" // The ring sits outside the gradient rather than over it, so a - // selected swatch still shows its true colours. + // selected swatch still shows its true colors. border.width: entry.selected ? 2 : 1 border.color: entry.selected ? Theme.fg : Theme.alpha(Theme.fg, 0.14) @@ -83,8 +83,8 @@ Flow { } } - // Always shown, not a tooltip. Telling swatches apart by colour is - // exactly what someone with a colour vision deficiency cannot do, + // Always shown, not a tooltip. Telling swatches apart by color is + // exactly what someone with a color vision deficiency cannot do, // and it is the reason the palette is named rather than freeform -- // hiding the names behind a hover would waste that. Text { diff --git a/config/dot/quickshell/modules/settings/AppearancePage.qml b/config/dot/quickshell/modules/settings/AppearancePage.qml index 5c4cb97..b27e34a 100644 --- a/config/dot/quickshell/modules/settings/AppearancePage.qml +++ b/config/dot/quickshell/modules/settings/AppearancePage.qml @@ -101,7 +101,7 @@ SettingsPage { } SettingsCard { - title: "Colour scheme" + title: "Color scheme" subtitle: ColorScheme.lastError !== "" ? ColorScheme.lastError : "Light is Tokyo Night Day, the official light variant — the same hues at a different lightness, so the blue-into-orchid signature survives the switch. Applications and window borders follow." diff --git a/config/dot/quickshell/modules/settings/DateTimePage.qml b/config/dot/quickshell/modules/settings/DateTimePage.qml index 17906ee..80d6979 100644 --- a/config/dot/quickshell/modules/settings/DateTimePage.qml +++ b/config/dot/quickshell/modules/settings/DateTimePage.qml @@ -7,7 +7,7 @@ // because that genuinely is a Panama preference. // // Changing the timezone or network time needs privilege. timedatectl asks -// polkit, and a cancelled dialog surfaces as an error rather than as a value +// polkit, and a canceled dialog surfaces as an error rather than as a value // that appears to have been accepted. import QtQuick @@ -33,7 +33,7 @@ SettingsPage { SettingRow { label: "Set automatically" detail: DateTime.ntpEnabled - ? (DateTime.ntpSynchronised ? "Synchronised with a time server" : "Waiting to synchronise") + ? (DateTime.ntpSynchronized ? "Synchronized with a time server" : "Waiting to synchronize") : "The clock is set by hand" controlWidth: 48 divider: false diff --git a/config/dot/quickshell/modules/settings/DesktopPreview.qml b/config/dot/quickshell/modules/settings/DesktopPreview.qml index a248ffe..8a5814c 100644 --- a/config/dot/quickshell/modules/settings/DesktopPreview.qml +++ b/config/dot/quickshell/modules/settings/DesktopPreview.qml @@ -50,7 +50,7 @@ Rectangle { // Stands in for the wallpaper. Static: an animated gradient here would // repaint forever behind a settings page. - // Follows the colour scheme. A preview that stays dark while the shell + // Follows the color scheme. A preview that stays dark while the shell // around it is light does not read as "your desktop" -- it reads as a // screenshot of someone else's. gradient: Gradient { @@ -129,7 +129,7 @@ Rectangle { required property bool focused // The gradient border is drawn as a filled rounded rect with the window - // body inset on top of it: QML's Rectangle border takes a colour, not a + // body inset on top of it: QML's Rectangle border takes a color, not a // gradient, and the prism border is the whole signature here. Rectangle { id: frame diff --git a/config/dot/quickshell/modules/settings/HealthPage.qml b/config/dot/quickshell/modules/settings/HealthPage.qml index 957bd04..f3094a0 100644 --- a/config/dot/quickshell/modules/settings/HealthPage.qml +++ b/config/dot/quickshell/modules/settings/HealthPage.qml @@ -440,9 +440,9 @@ SettingsPage { ActionRow { objectName: "health-fedora-handoff:color" - label: "Colour profiles" + label: "Color profiles" detail: "Assigning an ICC profile here has no visible effect in this session: the colord daemon that loads it onto a display isn't running under Hyprland" - action: "Open colour" + action: "Open color" onTriggered: SystemSettings.openGnomePanel("color") } diff --git a/config/dot/quickshell/modules/settings/MousePage.qml b/config/dot/quickshell/modules/settings/MousePage.qml index 8d945da..bd9d552 100644 --- a/config/dot/quickshell/modules/settings/MousePage.qml +++ b/config/dot/quickshell/modules/settings/MousePage.qml @@ -20,8 +20,8 @@ SettingsPage { title: "Mouse & Touchpad" lede: InputDevices.hasTouchpad - ? "Pointer behaviour for your mouse and touchpad." - : "Pointer behaviour. Touchpad settings appear when a touchpad is attached." + ? "Pointer behavior for your mouse and touchpad." + : "Pointer behavior. Touchpad settings appear when a touchpad is attached." SettingsCard { title: "Mouse" diff --git a/config/dot/quickshell/modules/settings/PowerPage.qml b/config/dot/quickshell/modules/settings/PowerPage.qml index 2591709..fa16a2c 100644 --- a/config/dot/quickshell/modules/settings/PowerPage.qml +++ b/config/dot/quickshell/modules/settings/PowerPage.qml @@ -52,7 +52,7 @@ SettingsPage { } SettingsCard { - title: "Idle behaviour" + title: "Idle behavior" subtitle: IdleLock.managed ? "Idle timings are managed here. Changes take effect immediately." : "hypridle is running its shipped configuration. Turn on management below to make these adjustable." diff --git a/config/dot/quickshell/modules/settings/README.md b/config/dot/quickshell/modules/settings/README.md index 884688d..7e4c214 100644 --- a/config/dot/quickshell/modules/settings/README.md +++ b/config/dot/quickshell/modules/settings/README.md @@ -1,7 +1,7 @@ # Settings -The control centre for everything Panama owns. Anything the system owns — -hardware, accounts, printers — is delegated to GNOME Settings and labelled as +The control center for everything Panama owns. Anything the system owns — +hardware, accounts, printers — is delegated to GNOME Settings and labeled as such rather than half-reimplemented. ## System Health @@ -28,7 +28,7 @@ package, runs `sudo`, deletes user data, or repairs a service Panama does not own. A repair remains degraded until a fresh scan observes recovery. The final card is the ownership boundary. Network configuration and the exact -Users, Sharing, Colour profiles, and Digital wellbeing handoffs open GNOME +Users, Sharing, Color profiles, and Digital wellbeing handoffs open GNOME Settings because Fedora's system services own those areas. ## Adding a setting @@ -64,7 +64,7 @@ file. Every preference has **one primary page**, derived from its schema `group` and the route in `services/SettingsSearch.qml`. Search results always open that owner. A control may appear on a second page only when the same adaptation is -part of another established mental model; otherwise use a labelled handoff to +part of another established mental model; otherwise use a labeled handoff to the owner instead of duplicating it. ### Intentional mirrors @@ -72,7 +72,7 @@ the owner instead of duplicating it. | Setting | Primary page | Mirror | Why the mirror earns its place | |---|---|---|---| | `animationsEnabled` | Appearance | Accessibility | Reduced motion belongs both to visual polish and motion accessibility. | -| `cursorInactiveTimeout` | Mouse | Accessibility | Pointer visibility is configured with pointer behaviour but affects motor and visual access. | +| `cursorInactiveTimeout` | Mouse | Accessibility | Pointer visibility is configured with pointer behavior but affects motor and visual access. | | `cursorSize` | Accessibility | Mouse | Large cursors are an accessibility adaptation that users also look for beside pointer controls. | | `inactiveOpacity` | Appearance | Accessibility | Window translucency is an appearance choice with a direct readability impact. | | `lockMinutes` | Power | Privacy | Idle timing owns the mechanism; privacy owns the expectation that the unattended desktop locks. | @@ -93,7 +93,7 @@ Mirrors must remain the same schema-backed control, never a second preference or a copied default. Additions to this table require a concrete discoverability reason and an update to `tests/quickshell/settings-ownership-contract.sh`. -Window border colour follows the same ownership rule. The inactive border is a +Window border color follows the same ownership rule. The inactive border is a **scheme-relative role** owned by `ColorScheme.qml`: it changes only to retain neutral contrast in light and dark modes. The focused Prism border is the **accent role**, driven by the chosen `accentName` and also owned by @@ -165,7 +165,7 @@ file with `qs -p`, and discover its PID from the exact Config path in | File | Holds | |---|---| | `~/.config/panama/settings.json` | Everything in the schema. Read by the shell *and* by `hypr/prefs.lua` | -| `$XDG_STATE_HOME/panama/panama-home.json` | Home accessory favourites and aliases | +| `$XDG_STATE_HOME/panama/panama-home.json` | Home accessory favorites and aliases | | `$XDG_STATE_HOME/panama/backups/` | Settings snapshots | | `$XDG_STATE_HOME/panama/hypridle.conf` | Generated idle config | | `$XDG_STATE_HOME/panama/hyprlock.conf` | Generated lock-screen appearance | diff --git a/config/dot/quickshell/modules/settings/ShortcutCapture.qml b/config/dot/quickshell/modules/settings/ShortcutCapture.qml index 4ca73cd..70e7371 100644 --- a/config/dot/quickshell/modules/settings/ShortcutCapture.qml +++ b/config/dot/quickshell/modules/settings/ShortcutCapture.qml @@ -19,7 +19,7 @@ FocusScope { id: root signal captured(string chord) - signal cancelled + signal canceled property string message: "" @@ -97,7 +97,7 @@ FocusScope { event.accepted = true; if (event.key === 0x01000000) { // Escape - root.cancelled(); + root.canceled(); return; } if (root.isModifierOnly(event.key)) @@ -127,6 +127,6 @@ FocusScope { onActiveFocusChanged: { if (!activeFocus) - root.cancelled(); + root.canceled(); } } diff --git a/config/dot/quickshell/modules/settings/ShortcutsPage.qml b/config/dot/quickshell/modules/settings/ShortcutsPage.qml index db6f505..388505c 100644 --- a/config/dot/quickshell/modules/settings/ShortcutsPage.qml +++ b/config/dot/quickshell/modules/settings/ShortcutsPage.qml @@ -7,7 +7,7 @@ // description in hypr/keybinds.lua, and this page just groups and renders them. // // The hardware settings above the list are real controls. Keyboard layout, -// repeat behaviour, and pointer response are Hyprland's, so Panama owns them; +// repeat behavior, and pointer response are Hyprland's, so Panama owns them; // device-specific configuration stays with GNOME. import QtQuick @@ -174,7 +174,7 @@ SettingsPage { Keybinds.rebind(bindRow.modelData.luaChord, chord); root.capturingChord = ""; } - onCancelled: root.capturingChord = "" + onCanceled: root.capturingChord = "" } Row { diff --git a/config/dot/quickshell/modules/settings/SliderRow.qml b/config/dot/quickshell/modules/settings/SliderRow.qml index a58b5c2..7f2d64a 100644 --- a/config/dot/quickshell/modules/settings/SliderRow.qml +++ b/config/dot/quickshell/modules/settings/SliderRow.qml @@ -4,7 +4,7 @@ // // Range, step, label, explanation, and unit all come from PreferenceSchema. // -// Three behaviours worth knowing: +// Three behaviors worth knowing: // // * The row is responsive. The Settings window is a normal tiled window, so // its width is whatever the layout gives it -- anywhere from a half-screen @@ -63,7 +63,7 @@ Item { // A fixed trailing width rather than a share of the row. A proportional // control looks reasonable at 900px and absurd at 4500px, where the slider - // would be a metre long next to a two-word label -- and this window is + // would be a meter long next to a two-word label -- and this window is // tiled, so it really can be that wide. readonly property int controlSpan: 300 diff --git a/config/dot/quickshell/modules/settings/TextEntryRow.qml b/config/dot/quickshell/modules/settings/TextEntryRow.qml index e402cab..5962174 100644 --- a/config/dot/quickshell/modules/settings/TextEntryRow.qml +++ b/config/dot/quickshell/modules/settings/TextEntryRow.qml @@ -8,7 +8,7 @@ // setting it edits. // // Rejected input is shown as rejected rather than silently dropped or quietly -// sanitised. Several of these strings are serialised into an hl.config payload, +// sanitised. Several of these strings are serialized into an hl.config payload, // where stripping an unexpected character would turn a typo into a different // working setting -- so the schema's pattern decides, the field turns red when // it fails, and nothing is committed until it passes. diff --git a/config/dot/quickshell/modules/settings/TimeOfDayRow.qml b/config/dot/quickshell/modules/settings/TimeOfDayRow.qml index d6d0ce3..21ab7ac 100644 --- a/config/dot/quickshell/modules/settings/TimeOfDayRow.qml +++ b/config/dot/quickshell/modules/settings/TimeOfDayRow.qml @@ -4,7 +4,7 @@ // clock. This is the same control with the readout formatted as a time, so the // night light schedule says "5:30 PM" rather than a number you have to convert. // -// Honours the 24-hour clock preference, because a user who has asked for 18:30 +// Honors the 24-hour clock preference, because a user who has asked for 18:30 // everywhere else should not be shown 6:30 PM here. import QtQuick diff --git a/config/dot/quickshell/scripts/panama-settings-backup b/config/dot/quickshell/scripts/panama-settings-backup index 39717c7..5ed589d 100755 --- a/config/dot/quickshell/scripts/panama-settings-backup +++ b/config/dot/quickshell/scripts/panama-settings-backup @@ -135,7 +135,7 @@ def valid_home(value: Any) -> bool: def validate_home(value: Any, label: str) -> dict[str, Any]: if not valid_home(value): - fail(f"{label} does not contain valid Home favourites.") + fail(f"{label} does not contain valid Home favorites.") return value diff --git a/config/dot/quickshell/scripts/panama-theme-apps b/config/dot/quickshell/scripts/panama-theme-apps index 5fc2e86..47e727f 100755 --- a/config/dot/quickshell/scripts/panama-theme-apps +++ b/config/dot/quickshell/scripts/panama-theme-apps @@ -1,6 +1,6 @@ #!/usr/bin/env bash -# Propagates the colour scheme to applications that do not read the desktop +# Propagates the color scheme to applications that do not read the desktop # portal. # # Most modern applications DO follow org.freedesktop.portal.Settings and need @@ -47,7 +47,7 @@ esac # Same 8 named accents as config/Theme.qml's `accents` map (kept in sync by # hand -- there is no shared source between QML and a shell script), primary -# hue per scheme only: both consumers below draw a flat colour, not the +# hue per scheme only: both consumers below draw a flat color, not the # two-stop gradient the window border does. accent_hex() { local name="$1" scheme="$2" @@ -108,7 +108,7 @@ status_hyprlock="skipped" if [[ -r "$lock_template" ]]; then # Written atomically: a lock triggered mid-write would otherwise read a # truncated config and fall back to hyprlock's own defaults, which is a - # bright grey screen with none of this desktop's identity. + # bright gray screen with none of this desktop's identity. if sed -e "s/@FG@/$lock_fg/g" \ -e "s/@MUTED@/$lock_muted/g" \ -e "s/@ACCENT@/$lock_accent/g" \ @@ -159,7 +159,7 @@ fi # it on the next write. # # btop reads its theme once at startup, so a running instance keeps the old -# colours until it is restarted. That is acceptable for a monitor you open when +# colors until it is restarted. That is acceptable for a monitor you open when # you want it, and forcing a restart would kill a process the user is watching. btop_conf="${XDG_CONFIG_HOME:-$HOME/.config}/btop/btop.conf" btop_theme="tokyonight-moon" diff --git a/config/dot/quickshell/services/Clipboard.qml b/config/dot/quickshell/services/Clipboard.qml index 3b50cd3..694f688 100644 --- a/config/dot/quickshell/services/Clipboard.qml +++ b/config/dot/quickshell/services/Clipboard.qml @@ -220,7 +220,7 @@ Singleton { } try { - root.entries = JSON.parse(text).map(row => root._normalise(row)); + root.entries = JSON.parse(text).map(row => root._normalize(row)); } catch (e) { console.warn("Clipboard: could not parse history —", e); root.entries = []; @@ -231,7 +231,7 @@ Singleton { // Turn a raw row into what the UI actually asks questions of, so no // delegate has to know about column names or Vicinae's integer kinds. - function _normalise(row: var): var { + function _normalize(row: var): var { const encrypted = row.enc !== 0; const textual = row.kind === root.kindText || row.kind === root.kindLink; const raw = row.preview || ""; diff --git a/config/dot/quickshell/services/ColorScheme.qml b/config/dot/quickshell/services/ColorScheme.qml index 7794481..962e352 100644 --- a/config/dot/quickshell/services/ColorScheme.qml +++ b/config/dot/quickshell/services/ColorScheme.qml @@ -6,7 +6,7 @@ pragma Singleton // because every token there is a binding. Two other things draw on this desktop // and do not read Panama's store: // -// GTK applications read gsettings colour-scheme and gtk-theme +// GTK applications read gsettings color-scheme and gtk-theme // the compositor draws window borders and shadows // // A toolbar or a window border still wearing the other scheme is more jarring @@ -31,10 +31,10 @@ Singleton { readonly property string inactiveBorder: root.dark ? root.inactiveBorderDark : root.inactiveBorderLight // The focused border follows the chosen accent. `ee` is the shipped alpha - // for the Prism gradient; Theme owns which colours, this owns the form the + // for the Prism gradient; Theme owns which colors, this owns the form the // compositor wants them in. function hyprColor(value: var): string { - // Qt gives "#rrggbb" -- or "#aarrggbb" if the colour ever carries an + // Qt gives "#rrggbb" -- or "#aarrggbb" if the color ever carries an // alpha channel. slice(-6) keeps the trailing rrggbb either way; // slice(0, 6) would instead grab "aarrgg" out of an 8-digit string and // call it RGB. Hyprland wants rgba(rrggbbaa). @@ -59,7 +59,7 @@ Singleton { id: runner onExited: (exitCode, exitStatus) => { if (exitCode !== 0) - root.lastError = "The colour scheme could not be applied everywhere."; + root.lastError = "The color scheme could not be applied everywhere."; root.drain(); } } @@ -153,16 +153,16 @@ Singleton { // Each accent carries a separate pair for light and dark, so this // runs on either kind of change: a scheme flip restates the same // accent's other pair, and an accent change restates the same - // scheme's other colours. + // scheme's other colors. // // A two-stop gradient at the shipped angle. Written as a Lua TABLE: // the string form of a gradient carries only one stop, and passing // "rgba(a) rgba(b) 115deg" as a string is accepted and silently // keeps the previous value. Multi-stop must be the table form -- - // built by the same serialiseValue() SystemSettings uses for every + // built by the same serializeValue() SystemSettings uses for every // other gradient, rather than a second hand-rolled copy of that // escaping here. - const activeBorder = SystemSettings.serialiseValue({ + const activeBorder = SystemSettings.serializeValue({ colors: [root.accentBorderStart, root.accentBorderEnd], angle: 115 }); diff --git a/config/dot/quickshell/services/DateTime.qml b/config/dot/quickshell/services/DateTime.qml index e27a3fd..eefb870 100644 --- a/config/dot/quickshell/services/DateTime.qml +++ b/config/dot/quickshell/services/DateTime.qml @@ -23,7 +23,7 @@ Singleton { property string timezone: "" property bool ntpEnabled: false - property bool ntpSynchronised: false + property bool ntpSynchronized: false property string localTime: "" property string universalTime: "" property string rtcTime: "" @@ -79,7 +79,7 @@ Singleton { // status is re-read either way. root.lastError = exitCode === 0 ? "" - : "The system rejected that change, or authentication was cancelled."; + : "The system rejected that change, or authentication was canceled."; root.refresh(); } } @@ -101,7 +101,7 @@ Singleton { else if (key === "NTP") root.ntpEnabled = value === "yes"; else if (key === "NTPSynchronized") - root.ntpSynchronised = value === "yes"; + root.ntpSynchronized = value === "yes"; } root.lastError = ""; } @@ -115,7 +115,7 @@ Singleton { // caller-supplied text reaches the command. function setTimezone(zone: string): bool { if (root.zones.indexOf(zone) < 0) { - root.lastError = "That is not a timezone this system recognises."; + root.lastError = "That is not a timezone this system recognizes."; return false; } if (writeRun.running) diff --git a/config/dot/quickshell/services/Displays.qml b/config/dot/quickshell/services/Displays.qml index 067c55c..a094af1 100644 --- a/config/dot/quickshell/services/Displays.qml +++ b/config/dot/quickshell/services/Displays.qml @@ -141,7 +141,7 @@ Singleton { ? persistedPrimaries[0].name : (origin?.name ?? raw[0]?.name ?? ""); root.monitors = raw.map(monitor => { - const modes = root.normaliseModes(monitor.availableModes ?? []); + const modes = root.normalizeModes(monitor.availableModes ?? []); const width = monitor.width ?? 0; const height = monitor.height ?? 0; const refreshRate = monitor.refreshRate ?? 0; @@ -200,7 +200,7 @@ Singleton { // resolution at distinct rates such as 60.00 and 59.94. Those identities // remain separate because confirmation and recovery must read back the // exact mode the user chose, even when their rounded labels look similar. - function normaliseModes(raw: var): var { + function normalizeModes(raw: var): var { const seen = {}; const out = []; for (const entry of raw) { diff --git a/config/dot/quickshell/services/Geocoding.qml b/config/dot/quickshell/services/Geocoding.qml index 15d908d..3d157d6 100644 --- a/config/dot/quickshell/services/Geocoding.qml +++ b/config/dot/quickshell/services/Geocoding.qml @@ -114,7 +114,7 @@ Singleton { } // Stores a chosen place. Coordinates are rounded to four decimals -- roughly - // ten metres, far finer than a weather reading resolves, and it keeps a + // ten meters, far finer than a weather reading resolves, and it keeps a // precise home location out of the settings file. function choose(place: var): bool { const latitude = Math.round(place.latitude * 10000) / 10000; diff --git a/config/dot/quickshell/services/GraphicsDevices.qml b/config/dot/quickshell/services/GraphicsDevices.qml index f6eca82..715a002 100644 --- a/config/dot/quickshell/services/GraphicsDevices.qml +++ b/config/dot/quickshell/services/GraphicsDevices.qml @@ -81,7 +81,7 @@ Singleton { } // "AMD ... [Radeon RX 7700 XT / 7800 XT] (rev c8)" is what lspci gives; the - // bracketed marketing name is the part anyone recognises. + // bracketed marketing name is the part anyone recognizes. function shortName(name: string): string { const bracketed = String(name).match(/\[([^\]]+)\]\s*(?:\(rev[^)]*\))?\s*$/); return bracketed ? bracketed[1] : String(name).replace(/\s*\(rev[^)]*\)\s*$/, ""); diff --git a/config/dot/quickshell/services/NightLight.qml b/config/dot/quickshell/services/NightLight.qml index 92687b7..82d88c9 100644 --- a/config/dot/quickshell/services/NightLight.qml +++ b/config/dot/quickshell/services/NightLight.qml @@ -43,7 +43,7 @@ Singleton { readonly property bool scheduled: root.inWindow(clock.hours + clock.minutes / 60) // A manual toggle always wins: it drops out of the schedule rather than - // being silently reverted a minute later. Same as GNOME's behaviour when + // being silently reverted a minute later. Same as GNOME's behavior when // you flip night light off during a scheduled evening. function toggle(): void { if (root.automatic) { diff --git a/config/dot/quickshell/services/Notifs.qml b/config/dot/quickshell/services/Notifs.qml index f457b99..36325c6 100644 --- a/config/dot/quickshell/services/Notifs.qml +++ b/config/dot/quickshell/services/Notifs.qml @@ -10,7 +10,7 @@ pragma Singleton // the *live* objects rather than copies: that keeps actions and inline replies // working from the tray, which is what GNOME does. The cost is that a // notification an app closes itself (progress bars, "download finished" -// replacing "downloading") disappears from history too — correct behaviour, +// replacing "downloading") disappears from history too — correct behavior, // but the reason history is not append-only. // ───────────────────────────────────────────────────────────────────────────── @@ -34,7 +34,7 @@ Singleton { // Suppresses toasts entirely. Notifications still reach history. property bool doNotDisturb: false - // Cleared when the notification centre is opened. The bar binds to this. + // Cleared when the notification center is opened. The bar binds to this. property int unreadCount: 0 // Kept separate from the persisted map so this version can safely run diff --git a/config/dot/quickshell/services/PowerProfiles.qml b/config/dot/quickshell/services/PowerProfiles.qml index 670a06b..bc9542c 100644 --- a/config/dot/quickshell/services/PowerProfiles.qml +++ b/config/dot/quickshell/services/PowerProfiles.qml @@ -33,7 +33,7 @@ Singleton { // Non-empty when the machine cannot actually deliver the profile it is set // to -- thermal throttling, or a laptop running on battery. Worth showing, - // because otherwise "performance" is a claim the hardware is not honouring. + // because otherwise "performance" is a claim the hardware is not honoring. property string degraded: "" readonly property bool available: root.profiles.length > 0 @@ -52,7 +52,7 @@ Singleton { function detail(profile: string): string { switch (profile) { case "power-saver": return "Reduces performance to save energy and run quieter"; - case "balanced": return "Standard behaviour, scaling up only when needed"; + case "balanced": return "Standard behavior, scaling up only when needed"; case "performance": return "Holds higher clocks, using more power and making more noise"; default: return ""; } diff --git a/config/dot/quickshell/services/SettingsBackup.qml b/config/dot/quickshell/services/SettingsBackup.qml index a407c1f..985b4dc 100644 --- a/config/dot/quickshell/services/SettingsBackup.qml +++ b/config/dot/quickshell/services/SettingsBackup.qml @@ -107,7 +107,7 @@ Singleton { if (restoreAccepted) root.lastError = ""; else if (root.lastError === "") - root.lastError = "Desktop settings were restored, but Home favourites could not be reloaded."; + root.lastError = "Desktop settings were restored, but Home favorites could not be reloaded."; if (!restoreAccepted) { root.setDisplayBlocked(false); root.protectedDisplays = ({}); @@ -192,10 +192,10 @@ Singleton { if (actionRun.running) return; actionRun.restoring = false; - actionRun.exec([root.helperPath, "save", root.serialiseHomeState()]); + actionRun.exec([root.helperPath, "save", root.serializeHomeState()]); } - function serialiseHomeState(): string { + function serializeHomeState(): string { const current = root.readHomeState(); const favorites = []; for (const favorite of current.favorites ?? []) { diff --git a/config/dot/quickshell/services/SettingsSearch.qml b/config/dot/quickshell/services/SettingsSearch.qml index 5cac5a0..3dbc9fc 100644 --- a/config/dot/quickshell/services/SettingsSearch.qml +++ b/config/dot/quickshell/services/SettingsSearch.qml @@ -59,7 +59,7 @@ Singleton { // on a settings app that plainly has one. readonly property var extraEntries: [ { label: "Timezone", detail: "Set the system timezone", page: "datetime" }, - { label: "Network time", detail: "Synchronise the clock with a time server", page: "datetime" }, + { label: "Network time", detail: "Synchronize the clock with a time server", page: "datetime" }, { label: "Wi-Fi", detail: "Managed by GNOME Settings", page: "connectivity" }, { label: "Bluetooth", detail: "Managed by GNOME Settings", page: "connectivity" }, { label: "Printers", detail: "Managed by GNOME Settings", page: "connectivity" }, @@ -68,7 +68,7 @@ Singleton { { label: "Keyboard shortcuts", detail: "Every shortcut the compositor has bound", page: "shortcuts" }, { label: "System Health", detail: "Check Panama services, integrations, tools, and recovery actions", page: "services" }, { label: "Copy health report", detail: "Copy a redacted Panama doctor report", page: "services" }, - { label: "Lock screen background", detail: "Choose a blurred desktop, wallpaper, or solid colour", page: "appearance" }, + { label: "Lock screen background", detail: "Choose a blurred desktop, wallpaper, or solid color", page: "appearance" }, { label: "Password field", detail: "Choose whether the empty lock-screen field stays visible", page: "appearance" }, { label: "Per-display wallpaper", detail: "Assign a different image to each connected display", page: "appearance" }, { label: "Arrange displays", detail: "Drag connected displays into their physical positions", page: "displays" }, diff --git a/config/dot/quickshell/services/SoundFeedback.qml b/config/dot/quickshell/services/SoundFeedback.qml index d8a17cb..8563154 100644 --- a/config/dot/quickshell/services/SoundFeedback.qml +++ b/config/dot/quickshell/services/SoundFeedback.qml @@ -1,6 +1,6 @@ pragma Singleton -// GNOME and GTK applications already honour these desktop sound preferences. +// GNOME and GTK applications already honor these desktop sound preferences. // Panama controls the same durable keys so moving between sessions does not // create two competing notions of whether event feedback is enabled. diff --git a/config/dot/quickshell/services/SystemSettings.qml b/config/dot/quickshell/services/SystemSettings.qml index 84af036..b511e3d 100644 --- a/config/dot/quickshell/services/SystemSettings.qml +++ b/config/dot/quickshell/services/SystemSettings.qml @@ -277,7 +277,7 @@ Singleton { function hyprValue(entry: var, value: var): var { // Some options are phrased as a negative by the compositor -- the four // Hyprland notices are all `disable_x` -- while the setting reads as - // "show x", because a switch labelled "Disable splash text" that must + // "show x", because a switch labeled "Disable splash text" that must // be ON to hide something is a small cruelty. `invert` bridges the two, // in exactly one place, so nothing downstream has to remember which // options are backwards. @@ -289,7 +289,7 @@ Singleton { return value; } - // Serialises validated values into a nested hl.config{} call. Table paths + // Serializes validated values into a nested hl.config{} call. Table paths // come from the schema and values have already passed coerce(), including // the pattern check on constrained strings, so nothing caller-supplied // reaches the payload unchecked. @@ -301,12 +301,12 @@ Singleton { let node = tree; for (let i = 0; i < path.length - 1; i++) node = node[path[i]] = node[path[i]] ?? {}; - node[path[path.length - 1]] = root.serialiseValue(root.hyprValue(entry, requested[key])); + node[path[path.length - 1]] = root.serializeValue(root.hyprValue(entry, requested[key])); } - return `hl.config(${root.serialiseTable(tree)})`; + return `hl.config(${root.serializeTable(tree)})`; } - function serialiseValue(value: var): string { + function serializeValue(value: var): string { if (typeof value === "boolean") return value ? "true" : "false"; if (typeof value === "number") @@ -330,22 +330,22 @@ Singleton { if (Array.isArray(value) && value.length === 2) return `{ ${Number(value[0])}, ${Number(value[1])} }`; // Strings only reach here after the schema's pattern check; quoting is - // belt-and-braces rather than the primary defence. + // belt-and-braces rather than the primary defense. return `"${String(value).replace(/["\\]/g, "")}"`; } - function serialiseTable(node: var): string { + function serializeTable(node: var): string { const parts = []; for (const name in node) { const child = node[name]; - // A leaf arrives pre-serialised as a string; anything else is + // A leaf arrives pre-serialized as a string; anything else is // either a nested section or a structured value (gradient, vec2) - // that serialiseValue knows how to render. + // that serializeValue knows how to render. const rendered = typeof child === "string" ? child : (Array.isArray(child) || (child && child.colors !== undefined) - ? root.serialiseValue(child) - : root.serialiseTable(child)); + ? root.serializeValue(child) + : root.serializeTable(child)); parts.push(`${name} = ${rendered}`); } return `{ ${parts.join(", ")} }`; @@ -403,11 +403,11 @@ Singleton { function gradientMatches(expected: var, observed: string): bool { if (typeof observed !== "string") return false; - return root.normaliseGradient(expected) === root.normaliseGradient(observed); + return root.normalizeGradient(expected) === root.normalizeGradient(observed); } // Both notations reduced to "aarrggbb aarrggbb Ndeg". - function normaliseGradient(value: var): string { + function normalizeGradient(value: var): string { const stops = []; let angle = 0; @@ -518,8 +518,8 @@ Singleton { // Panama's shipped DP-2 placement and automatic placement elsewhere. // Home accessories keep their own store (panama-home.json), so a reset - // that only cleared the schema store would silently leave a customised - // favourites list behind while claiming to restore Panama's defaults. + // that only cleared the schema store would silently leave a customized + // favorites list behind while claiming to restore Panama's defaults. // // HomePreferences owns the write-through boundary so the state file is // rewritten before this reset can be considered complete. @@ -593,7 +593,7 @@ Singleton { // `subpage` reaches the panels GNOME 50 nests under System -- users, // about, datetime, region -- which its own desktop entries open as - // `gnome-control-center system users`. Without it, a row labelled "Users" + // `gnome-control-center system users`. Without it, a row labeled "Users" // lands on System's front page and leaves the user to navigate, which is // most of the way to a broken button. function openGnomePanel(panel: string, subpage: string): bool { diff --git a/config/dot/quickshell/services/Wallpaper.qml b/config/dot/quickshell/services/Wallpaper.qml index 1b7c65a..e68db62 100644 --- a/config/dot/quickshell/services/Wallpaper.qml +++ b/config/dot/quickshell/services/Wallpaper.qml @@ -187,7 +187,7 @@ Singleton { }; } - function normalisePolicy(policy: var): var { + function normalizePolicy(policy: var): var { if (!policy || typeof policy !== "object") return null; const mode = ["single", "slideshow", "per-monitor"].includes(policy.mode) @@ -220,8 +220,8 @@ Singleton { function applyPolicy(policy: var, persist: bool, automatic: bool): bool { if (root.busy) return false; - const normalised = root.normalisePolicy(policy); - if (normalised === null) { + const normalized = root.normalizePolicy(policy); + if (normalized === null) { root.lastError = "That wallpaper policy is not valid."; return false; } @@ -231,8 +231,8 @@ Singleton { return false; } const expected = WallpaperPolicy.effectiveMap( - normalised.mode, normalised.globalPath, normalised.slideshowPath, - normalised.assignments, outputs, normalised.candidates); + normalized.mode, normalized.globalPath, normalized.slideshowPath, + normalized.assignments, outputs, normalized.candidates); if (Object.keys(expected).length !== outputs.length || Object.values(expected).some(path => path === "")) { root.lastError = "That wallpaper policy is not valid."; @@ -242,7 +242,7 @@ Singleton { root.transaction = { expected, remaining: outputs.slice(), - policy: normalised, + policy: normalized, persist: persist === true, automatic: automatic === true }; diff --git a/config/dot/quickshell/widgets/PrismEdge.qml b/config/dot/quickshell/widgets/PrismEdge.qml index 090e905..33cde36 100644 --- a/config/dot/quickshell/widgets/PrismEdge.qml +++ b/config/dot/quickshell/widgets/PrismEdge.qml @@ -24,7 +24,7 @@ Rectangle { id: root // Horizontal inset, normally the parent's corner radius. Below that the - // line runs out onto the curve and looks like a rendering artefact. + // line runs out onto the curve and looks like a rendering artifact. property real inset: Theme.popoverRadius anchors.leftMargin: root.inset @@ -33,7 +33,7 @@ Rectangle { implicitHeight: 1 height: 1 - // The colour stops are the only place the two accents touch. + // The color stops are the only place the two accents touch. gradient: Gradient { orientation: Gradient.Horizontal diff --git a/config/dot/quickshell/widgets/ThemedIcon.qml b/config/dot/quickshell/widgets/ThemedIcon.qml index b442257..41b4eb0 100644 --- a/config/dot/quickshell/widgets/ThemedIcon.qml +++ b/config/dot/quickshell/widgets/ThemedIcon.qml @@ -1,7 +1,7 @@ -// A freedesktop symbolic icon, recoloured to a Theme token. +// A freedesktop symbolic icon, recolored to a Theme token. // // Adwaita's symbolic SVGs carry a hardcoded near-black fill (#2e3436) and Qt -// does not do GTK's runtime recolouring, so drawn as-is they are invisible on +// does not do GTK's runtime recoloring, so drawn as-is they are invisible on // a Tokyo Night background — verified on this machine. The fix is to paint a // themed rectangle through the icon's alpha channel. diff --git a/config/dot/quickshell/widgets/Toggle.qml b/config/dot/quickshell/widgets/Toggle.qml index 13600b9..3e16880 100644 --- a/config/dot/quickshell/widgets/Toggle.qml +++ b/config/dot/quickshell/widgets/Toggle.qml @@ -1,5 +1,5 @@ // A GNOME-style quick-settings tile: big rounded button with an icon and a -// label, filled with the accent colour when active. +// label, filled with the accent color when active. import QtQuick import Quickshell @@ -52,7 +52,7 @@ Rectangle { spacing: 10 // ThemedIcon, not a bare IconImage: Adwaita's symbolic SVGs carry a - // hardcoded #2e3436 fill and Qt does not recolour them the way GTK + // hardcoded #2e3436 fill and Qt does not recolor them the way GTK // does, so drawn directly they are all but invisible on this palette. ThemedIcon { anchors.verticalCenter: parent.verticalCenter diff --git a/config/dot/quickshell/widgets/ValueSlider.qml b/config/dot/quickshell/widgets/ValueSlider.qml index a0a7e54..5733795 100644 --- a/config/dot/quickshell/widgets/ValueSlider.qml +++ b/config/dot/quickshell/widgets/ValueSlider.qml @@ -25,7 +25,7 @@ Item { opacity: enabled ? 1.0 : 0.45 // ThemedIcon, not a bare IconImage — see the note in Toggle.qml: Adwaita - // symbolic icons have a hardcoded near-black fill that Qt will not recolour. + // symbolic icons have a hardcoded near-black fill that Qt will not recolor. ThemedIcon { id: leadingIcon anchors.left: parent.left @@ -57,7 +57,7 @@ Item { border.width: 0 // The gradient is anchored to the full track, not to the fill, so - // the colour at a given position never moves as the value changes — + // the color at a given position never moves as the value changes — // dragging reveals the prism rather than squashing it. gradient: Gradient { orientation: Gradient.Horizontal diff --git a/config/dot/tmux/themes/tokyonight-day.conf b/config/dot/tmux/themes/tokyonight-day.conf index ca7338f..fb300c2 100644 --- a/config/dot/tmux/themes/tokyonight-day.conf +++ b/config/dot/tmux/themes/tokyonight-day.conf @@ -2,7 +2,7 @@ # # Same structure, same roles, Day's palette. Mapped role for role rather than by # hue: #1b1d2b was text drawn ON an accent block, so it becomes the LIGHT ground -# rather than a dark colour, or the status bar would be dark text on a dark +# rather than a dark color, or the status bar would be dark text on a dark # accent in light mode. # # The accents are Day's DARKER variants, not its standard ones. Measured against diff --git a/config/dot/tmux/themes/tokyonight-moon.conf b/config/dot/tmux/themes/tokyonight-moon.conf index 51cf3d2..66b4fb3 100644 --- a/config/dot/tmux/themes/tokyonight-moon.conf +++ b/config/dot/tmux/themes/tokyonight-moon.conf @@ -3,7 +3,7 @@ # Extracted from tmux.conf so the two schemes can be swapped. tmux.conf sources # current-theme.conf, which panama-theme-apps generates from one of these. # -# Every colour here was already in tmux.conf; this file is that block verbatim. +# Every color here was already in tmux.conf; this file is that block verbatim. set -g mode-style "fg=#82aaff,bg=#3b4261" diff --git a/config/dot/tmux/tmux.conf b/config/dot/tmux/tmux.conf index 636c7ba..09c8c6f 100644 --- a/config/dot/tmux/tmux.conf +++ b/config/dot/tmux/tmux.conf @@ -19,8 +19,8 @@ bind C-Space send-prefix # Set status bar #set -g status-bg pink # Tokyo Night Moon color palette -# Colours live in themes/ and are generated into current-theme.conf by -# panama-theme-apps, which regenerates it whenever the desktop colour scheme +# Colors live in themes/ and are generated into current-theme.conf by +# panama-theme-apps, which regenerates it whenever the desktop color scheme # changes. -q so a fresh checkout without the generated file still starts. source-file -q "~/.config/tmux/current-theme.conf" diff --git a/config/dot/vicinae/themes/tokyonight-day.toml b/config/dot/vicinae/themes/tokyonight-day.toml index e00de6b..ae09aa4 100644 --- a/config/dot/vicinae/themes/tokyonight-day.toml +++ b/config/dot/vicinae/themes/tokyonight-day.toml @@ -1,10 +1,10 @@ # Tokyo Night Day — the light counterpart to tokyonight-moon.toml. # -# Same schema and the same role for every colour; only the palette differs, so +# Same schema and the same role for every color; only the palette differs, so # the launcher keeps its identity when the desktop switches to light rather # than becoming a different-looking application. # -# Colours are the Tokyo Night Day palette, taken from kitty/themes/tokyonight-day.conf +# Colors are the Tokyo Night Day palette, taken from kitty/themes/tokyonight-day.conf # so the launcher and the terminal cannot drift apart. [meta] diff --git a/config/local/share/icons/hicolor/scalable/apps/panama-settings.svg b/config/local/share/icons/hicolor/scalable/apps/panama-settings.svg index a2858c1..b7fc2dd 100644 --- a/config/local/share/icons/hicolor/scalable/apps/panama-settings.svg +++ b/config/local/share/icons/hicolor/scalable/apps/panama-settings.svg @@ -2,7 +2,7 @@ diff --git a/docs/superpowers/plans/2026-08-17-focus-glass-continuum.md b/docs/superpowers/plans/2026-08-17-focus-glass-continuum.md index aac2eb7..07e54fb 100644 --- a/docs/superpowers/plans/2026-08-17-focus-glass-continuum.md +++ b/docs/superpowers/plans/2026-08-17-focus-glass-continuum.md @@ -90,7 +90,7 @@ - Produces: `ShellState.openOverview(workspaceId)`, filmstrip selection, large workspace preview, cross-workspace window search - [x] Add requested-overview-workspace state without coupling `ShellState` to the focus service. -- [x] Replace the centred equal-card row with a top filmstrip and a large selected-workspace preview. +- [x] Replace the centered equal-card row with a top filmstrip and a large selected-workspace preview. - [x] Keep the trailing dynamic-workspace card and one-shot thumbnail capture behavior. - [x] Add wheel navigation over the strip and keep the overview mapped while switching workspaces. - [x] Add a keyboard-focused search field and filtered cross-workspace window results. diff --git a/docs/superpowers/plans/2026-08-17-home-accessories-customization.md b/docs/superpowers/plans/2026-08-17-home-accessories-customization.md index fca3cf8..ecfa720 100644 --- a/docs/superpowers/plans/2026-08-17-home-accessories-customization.md +++ b/docs/superpowers/plans/2026-08-17-home-accessories-customization.md @@ -328,7 +328,7 @@ FileView { printErrors: false atomicWrites: true onSaved: root.saveError = "" - onSaveFailed: error => root.saveError = "Could not save Home favourites." + onSaveFailed: error => root.saveError = "Could not save Home favorites." JsonAdapter { id: values property bool initialized: false diff --git a/docs/superpowers/plans/2026-08-17-panama-cohesion.md b/docs/superpowers/plans/2026-08-17-panama-cohesion.md index c0d1822..1816454 100644 --- a/docs/superpowers/plans/2026-08-17-panama-cohesion.md +++ b/docs/superpowers/plans/2026-08-17-panama-cohesion.md @@ -15,10 +15,10 @@ holds the shipped defaults; one JSON file is the truth both sides read. - Verify every write by reading the value back (`hyprctl getoption`), never by trusting an exit code. - No UI-supplied string is interpolated into `eval`, a shell command, or a config - value. Numbers range-checked, choices allow-listed, colours hex-validated. + value. Numbers range-checked, choices allow-listed, colors hex-validated. - A missing or malformed `settings.json` degrades to shipped defaults. The Lua read is `pcall`-wrapped so it can never take down the compositor config. -- Tokyo Night Moon and Prism stay the only identity; customisation adjusts its +- Tokyo Night Moon and Prism stay the only identity; customization adjusts its parameters, it does not replace it. - Motion stays event-driven at every setting. No idle repaint. - Do not restart the running Quickshell process during development; it hot-reloads. @@ -30,7 +30,7 @@ holds the shipped defaults; one JSON file is the truth both sides read. ## Stage 0 — Stop the lying (ship first, standalone) The display-policy toggles report success while doing nothing. This is a -correctness bug in shipped behaviour and does not depend on any of the +correctness bug in shipped behavior and does not depend on any of the architecture below. **Files:** Modify `config/dot/quickshell/services/SystemSettings.qml`; @@ -40,7 +40,7 @@ Test `tests/quickshell/settings-hyprland-write-contract.sh` asserts via `hyprctl getoption` that the compositor value actually changed — and that a rejected write leaves `lastError` non-empty. - [x] Run it; confirm it fails against the current `hyprctl keyword` implementation. -- [x] Add a single `applyOptions(values)` boundary that serialises validated values +- [x] Add a single `applyOptions(values)` boundary that serializes validated values into `hl.config{}` and runs them through `hyprctl eval`. - [x] Route `setAutoHdr`, `setVrrPolicy`, and `setDirectScanoutPolicy` through it. - [x] Treat "wrote it back and read it back equal" as the only success condition; @@ -134,9 +134,9 @@ Test `tests/hypr/prefs-fallback-contract.sh` - [x] Implement a dependency-free JSON reader exposing `prefs.get(key, fallback)`, `pcall`-wrapped, reading `$XDG_CONFIG_HOME/panama/settings.json`. - [x] Require it first in `hyprland.lua`, before `looks`. -- [x] Convert the appearance and behaviour literals in `looks.lua` and `input.lua` +- [x] Convert the appearance and behavior literals in `looks.lua` and `input.lua` to `prefs.get("", )`, keeping every current value as - the fallback so shipped behaviour is byte-identical. + the fallback so shipped behavior is byte-identical. - [x] Extend `PreferenceSchema.qml` with the Hyprland-owned keys, each carrying the `hl.config` path it maps to. - [x] Have `SystemSettings` derive its `eval` payload from that mapping, so a new @@ -208,7 +208,7 @@ Modify all eleven `*Page.qml`; Test `tests/quickshell/settings-rows-contract.sh` - [ ] Move the remaining pages (Home, Displays, Connectivity, Sound, Notifications, Screen Intelligence, Services, About) onto `SettingsPage`. -**Exit criteria:** no shipped behaviour value is reachable only by editing a file. +**Exit criteria:** no shipped behavior value is reachable only by editing a file. **Landed (first pass).** `SettingsPage` plus `ToggleRow`, `SliderRow`, `ChoiceRow`, `ActionRow`, and `TextRow`. A row names a schema key and needs @@ -218,7 +218,7 @@ explanation, bounds, and unit from the schema, and writes through apply-and-verify and local keys straight to the store. Rows never need to know which kind they hold. -`DesktopPreview` is the direction-B centrepiece: two tiled windows drawn at the +`DesktopPreview` is the direction-B centerpiece: two tiled windows drawn at the settings actually in effect, scaled by the ratio between the preview's width and the real monitor's, so a 10px gap on a 4500px display looks as small as it is. diff --git a/docs/superpowers/plans/2026-08-17-panama-control-center.md b/docs/superpowers/plans/2026-08-17-panama-control-center.md index 7c08b18..5192e81 100644 --- a/docs/superpowers/plans/2026-08-17-panama-control-center.md +++ b/docs/superpowers/plans/2026-08-17-panama-control-center.md @@ -2,7 +2,7 @@ > **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking. -**Goal:** Expand Panama Quick Settings into the approved Control Center with secure Home Assistant favourites and capability-aware iPhone continuity. +**Goal:** Expand Panama Quick Settings into the approved Control Center with secure Home Assistant favorites and capability-aware iPhone continuity. **Architecture:** Two executable Python helpers own the external boundaries: KDE Connect CLI/D-Bus and the Home Assistant REST API/credential lookup. Quickshell singletons normalize those JSON contracts for focused Home and Phone components inside the existing Quick Settings window; Ongoing and Signal Glass consume transfer lifecycle without duplicating state. @@ -17,7 +17,7 @@ - Only one of Wi-Fi, Bluetooth, sink, source, Home, and Phone may be expanded at once. - Never print Home Assistant tokens, Authorization headers, clipboard text, certificate fingerprints, IP addresses, response bodies, or full local file paths. - Home Assistant tokens remain in the gitignored environment file or Secret Service; never write one into tracked content. -- Home Assistant toggle commands accept only entity IDs from the configured favourites snapshot. +- Home Assistant toggle commands accept only entity IDs from the configured favorites snapshot. - KDE Connect actions derive from advertised plugins; no fake battery or remote-input control is allowed. - Every Home toggle, file chooser, file send, clipboard send, and Ring action requires a user click. - Home toggle success, phone Ring, and clipboard success remain globally quiet. @@ -49,8 +49,8 @@ - `config/dot/quickshell/modules/quicksettings/QuickSettings.qml` — tighter top attachment and service preparation. - `config/dot/quickshell/modules/quicksettings/QuickSettingsPanel.qml` — expanded composition and exclusive section routing. - `config/dot/quickshell/modules/quicksettings/ControlSectionHeader.qml` — quiet section label and optional trailing action. -- `config/dot/quickshell/modules/quicksettings/HomeControls.qml` — four favourites, expanded configured list, loading/stale/failure states. -- `config/dot/quickshell/modules/quicksettings/HomeTile.qml` — one domain-aware favourite tile. +- `config/dot/quickshell/modules/quicksettings/HomeControls.qml` — four favorites, expanded configured list, loading/stale/failure states. +- `config/dot/quickshell/modules/quicksettings/HomeTile.qml` — one domain-aware favorite tile. - `config/dot/quickshell/modules/quicksettings/PhoneControls.qml` — approved compact Continuity Card. - `config/dot/quickshell/modules/quicksettings/RecentExchange.qml` — one session-local completed transfer row. - `config/dot/quickshell/modules/bar/StatusCluster.qml` — reachable-phone glyph inside the existing click target. @@ -340,7 +340,7 @@ Expected: all tests PASS and the fake server records no unexpected route. - [ ] **Step 5: Add and run the redacted live contract** The contract runs `probe` and `snapshot`, validates the schema, and prints only -`PASS (configured=true, N favourites; contents redacted)`. It must pipe JSON to +`PASS (configured=true, N favorites; contents redacted)`. It must pipe JSON to `jq` without printing friendly names, entity IDs, URL, or raw errors. - [ ] **Step 6: Commit Task 2** @@ -599,7 +599,7 @@ git commit -m "Build the Panama Control Center" - [ ] **Step 1: Update desktop documentation** -Mark Home Assistant favourites and KDE Connect phone integration Live. Document +Mark Home Assistant favorites and KDE Connect phone integration Live. Document the 430-pixel Control Center, two-pixel bar attachment, environment/keyring configuration precedence, BlueBubbles messaging boundary, and current iOS capabilities. Remove those two items from `System UI still worth adding` while @@ -628,7 +628,7 @@ inspect only the new process's journal for QML errors or warnings. - [ ] **Step 4: Perform read-only live checks** Verify the Control Center reports one reachable phone with the confirmed action -names and seven configured Home favourites without printing identities. Open +names and seven configured Home favorites without printing identities. Open and close the panel, expand Home and Phone, and confirm Wi-Fi, Bluetooth, audio, Focus, Caffeine, Night Light, settings, power, Escape, and outside-click remain usable. Do not trigger an external-device action. diff --git a/docs/superpowers/plans/2026-08-18-panama-health-recovery.md b/docs/superpowers/plans/2026-08-18-panama-health-recovery.md index 3417bec..5c37ad5 100644 --- a/docs/superpowers/plans/2026-08-18-panama-health-recovery.md +++ b/docs/superpowers/plans/2026-08-18-panama-health-recovery.md @@ -503,7 +503,7 @@ Accounts destinations while this feature was in review. Merge commit `4ef2f01` preserves those routes and the newer Settings navigation architecture, keeps the stable `services` route rendered by `HealthPage`, and leaves `ServicesPage.qml` retired. Its useful Fedora handoffs for Users, Sharing, -Colour profiles, and Digital wellbeing now live in the boundary-last System +Color profiles, and Digital wellbeing now live in the boundary-last System Health card alongside the existing network handoff, with focused static and isolated runtime coverage. diff --git a/docs/superpowers/specs/2026-08-17-focus-glass-continuum-design.md b/docs/superpowers/specs/2026-08-17-focus-glass-continuum-design.md index 284a41d..cf30d53 100644 --- a/docs/superpowers/specs/2026-08-17-focus-glass-continuum-design.md +++ b/docs/superpowers/specs/2026-08-17-focus-glass-continuum-design.md @@ -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. diff --git a/docs/superpowers/specs/2026-08-17-home-accessories-customization-design.md b/docs/superpowers/specs/2026-08-17-home-accessories-customization-design.md index dd9762c..de05efd 100644 --- a/docs/superpowers/specs/2026-08-17-home-accessories-customization-design.md +++ b/docs/superpowers/specs/2026-08-17-home-accessories-customization-design.md @@ -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. diff --git a/docs/superpowers/specs/2026-08-17-panama-cohesion-design.md b/docs/superpowers/specs/2026-08-17-panama-cohesion-design.md index c493611..8040fc6 100644 --- a/docs/superpowers/specs/2026-08-17-panama-cohesion-design.md +++ b/docs/superpowers/specs/2026-08-17-panama-cohesion-design.md @@ -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. diff --git a/docs/superpowers/specs/2026-08-17-panama-control-center-design.md b/docs/superpowers/specs/2026-08-17-panama-control-center-design.md index b21180f..424e9e5 100644 --- a/docs/superpowers/specs/2026-08-17-panama-control-center-design.md +++ b/docs/superpowers/specs/2026-08-17-panama-control-center-design.md @@ -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`. diff --git a/docs/superpowers/specs/2026-08-17-screen-intelligence-design.md b/docs/superpowers/specs/2026-08-17-screen-intelligence-design.md index 5230ec3..bff8612 100644 --- a/docs/superpowers/specs/2026-08-17-screen-intelligence-design.md +++ b/docs/superpowers/specs/2026-08-17-screen-intelligence-design.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 diff --git a/setup/scripts/link-dotfiles b/setup/scripts/link-dotfiles index 9dec120..f8a02ae 100755 --- a/setup/scripts/link-dotfiles +++ b/setup/scripts/link-dotfiles @@ -77,7 +77,7 @@ for dir in "${dirs[@]}"; do done # tmux.conf ends with a source-file of current-theme.conf, generated from the -# colour scheme rather than committed. Seed it so a fresh checkout starts themed +# color scheme rather than committed. Seed it so a fresh checkout starts themed # -- the source-file is -q, so a missing file is silent, which would leave tmux # unstyled with nothing to explain it. TMUX_THEME="$PANAMA_DOT/tmux/current-theme.conf" @@ -95,9 +95,9 @@ elif [ -d "$PANAMA_DOT/tmux/themes" ]; then log "Seeded tmux $tmux_scheme theme ($tmux_name) → $TMUX_THEME" fi -# hyprlock.conf is generated from a template on every colour scheme change and +# hyprlock.conf is generated from a template on every color scheme change and # is not committed. Seed it so the FIRST lock of a fresh install is themed -- -# without it hyprlock falls back to its own defaults, which is a bare grey +# without it hyprlock falls back to its own defaults, which is a bare gray # screen with none of this desktop's identity, and the first time anyone would # find out is when they walked away from the machine. HYPRLOCK_TEMPLATE="$PANAMA_DOT/hypr/hyprlock.conf.template" @@ -176,9 +176,9 @@ for gtk_version in 3.0 4.0; do done # kitty.conf ends with `include current-theme.conf`, and that file is generated -# from the desktop colour scheme rather than committed -- it is machine state. +# from the desktop color scheme rather than committed -- it is machine state. # A fresh checkout therefore has no such file, and kitty starts by complaining -# about a missing include and falling back to its stock colours. Seed it from +# about a missing include and falling back to its stock colors. Seed it from # the scheme in settings.json (dark unless the user has chosen otherwise) so a # first launch is themed; ColorScheme.qml overwrites it on every change after. KITTY_THEME="$PANAMA_DOT/kitty/current-theme.conf" @@ -226,7 +226,7 @@ done # the repository and expose it with a narrow per-file symlink. # Panama ships its own application icons. Without these the desktop entries fall # back to a generic symbolic glyph, which is drawn for 16px toolbar use and -# looks wrong beside full-colour application icons in the dock. +# looks wrong beside full-color application icons in the dock. PANAMA_ICON_DIR="$PANAMA_PATH/config/local/share/icons/hicolor/scalable/apps" USER_ICON_DIR="$HOME/.local/share/icons/hicolor/scalable/apps" mkdir -p "$USER_ICON_DIR" diff --git a/tests/hypr/idle-config-contract.sh b/tests/hypr/idle-config-contract.sh index 5dc9473..415b31c 100755 --- a/tests/hypr/idle-config-contract.sh +++ b/tests/hypr/idle-config-contract.sh @@ -48,11 +48,11 @@ grep -q 'timeout = 0' "$generated" && fail 'a zero timeout was written as an imm grep -qE '^listener' "$generated" && fail 'a listener was written when everything is set to never' grep -q 'after_sleep_cmd' "$generated" || fail 'the general block was lost when all timers are off' -# ── Values are honoured ────────────────────────────────────────────────────── +# ── Values are honored ────────────────────────────────────────────────────── run_with '{"screenBlankMinutes":2,"lockMinutes":7,"suspendMinutes":45}' -grep -q 'timeout = 120' "$generated" || fail '2 minute blank not honoured' -grep -q 'timeout = 420' "$generated" || fail '7 minute lock not honoured' -grep -q 'timeout = 2700' "$generated" || fail '45 minute suspend not honoured' +grep -q 'timeout = 120' "$generated" || fail '2 minute blank not honored' +grep -q 'timeout = 420' "$generated" || fail '7 minute lock not honored' +grep -q 'timeout = 2700' "$generated" || fail '45 minute suspend not honored' grep -q 'systemctl suspend' "$generated" || fail 'suspend listener missing when set' # ── lockOnSleep off removes the pre-sleep lock ─────────────────────────────── diff --git a/tests/hypr/prefs-fallback-contract.sh b/tests/hypr/prefs-fallback-contract.sh index b77784f..0813ca7 100755 --- a/tests/hypr/prefs-fallback-contract.sh +++ b/tests/hypr/prefs-fallback-contract.sh @@ -4,7 +4,7 @@ # monitors.lua. It is therefore the one piece of Panama that can cost the user a # working compositor rather than merely a working feature. # -# This contract pins the only behaviour that matters: whatever is in the +# This contract pins the only behavior that matters: whatever is in the # settings file -- including nothing, garbage, or values of the wrong type -- # the config still parses, and every setting either takes the stored value or # falls back to the value shipped in the Lua. @@ -106,7 +106,7 @@ result="$(probe '{"note": "a \"quoted\" value\nwith escapes", "nested": {"a": [1 # defaults is only useful if Hyprland still accepts the config around it. # # Hyprland resolves its own config from $HOME/.config/hypr regardless of -# XDG_CONFIG_HOME, while prefs.lua honours XDG_CONFIG_HOME. That asymmetry is +# XDG_CONFIG_HOME, while prefs.lua honors XDG_CONFIG_HOME. That asymmetry is # what makes this loop useful rather than vacuous: the *real* looks.lua and # input.lua are parsed against a *fixture* settings file. The probe cases above # already establish that prefs.lua reads the fixture and not the live file. diff --git a/tests/quickshell/connectivity-contract.sh b/tests/quickshell/connectivity-contract.sh index e693cc0..2c3a5c6 100755 --- a/tests/quickshell/connectivity-contract.sh +++ b/tests/quickshell/connectivity-contract.sh @@ -69,7 +69,7 @@ fi # ── Signal strength is a ratio, and the labels must reflect that ───────────── while IFS='|' read -r value expect; do got="$(run ipc call connectivity-test labelFor "$value")" - [[ "$got" == "$expect" ]] || fail "signal $value labelled '$got', expected '$expect'" + [[ "$got" == "$expect" ]] || fail "signal $value labeled '$got', expected '$expect'" done <<'CASES' 1.0|Excellent 0.85|Excellent diff --git a/tests/quickshell/declared-dependencies-contract.sh b/tests/quickshell/declared-dependencies-contract.sh index f73b746..6b901f5 100755 --- a/tests/quickshell/declared-dependencies-contract.sh +++ b/tests/quickshell/declared-dependencies-contract.sh @@ -5,7 +5,7 @@ # # This exists because the lists had drifted badly. jq is used by thirty-one call # sites across the helpers and the contracts; kitty has a full shipped config -# and a dock pin; tmux and btop have shipped themes that the colour scheme +# and a dock pin; tmux and btop have shipped themes that the color scheme # switches. None of the four were declared. So a fresh machine that followed # this repository's own install instructions would not have them. # diff --git a/tests/quickshell/dock-pins-contract.sh b/tests/quickshell/dock-pins-contract.sh index 0fc3780..aba9889 100755 --- a/tests/quickshell/dock-pins-contract.sh +++ b/tests/quickshell/dock-pins-contract.sh @@ -3,7 +3,7 @@ # Every pinned application must resolve to an installed desktop entry. # # DockBody drops a pin it cannot resolve rather than drawing a broken icon, -# which is the right behaviour at runtime and a terrible one to debug: a typo in +# which is the right behavior at runtime and a terrible one to debug: a typo in # the shipped list, or an application that changed its desktop id, simply # removes an icon from the dock with nothing logged. # diff --git a/tests/quickshell/enum-hypr-map-contract.sh b/tests/quickshell/enum-hypr-map-contract.sh index 0973621..ea36d5e 100755 --- a/tests/quickshell/enum-hypr-map-contract.sh +++ b/tests/quickshell/enum-hypr-map-contract.sh @@ -2,9 +2,9 @@ # Every enum backed by a Hyprland option must offer values that option accepts. # -# This exists because of a bug that shipped: followMouse offered 0/1/2 labelled +# This exists because of a bug that shipped: followMouse offered 0/1/2 labeled # "Never" / "Click to focus" / "Sloppy focus", while Hyprland's actual mapping -# is disabled=0, follow=1, detached=2, separate=3. The desktop was labelled +# is disabled=0, follow=1, detached=2, separate=3. The desktop was labeled # "Click to focus" and was in fact following the pointer, the way to GET click # to focus was to choose "Never", and value 3 did not exist in the UI at all. # @@ -85,7 +85,7 @@ while IFS=$'\t' read -r key option values; do while read -r published; do [[ -n "$published" ]] || continue grep -qx "$published" <<<"$(tr ',' '\n' <<<"$values")" \ - || fail "$option publishes value $published but $key does not offer it, so that behaviour is unreachable from Settings" + || fail "$option publishes value $published but $key does not offer it, so that behavior is unreachable from Settings" done <<<"$(tr ',' '\n' <<<"$map_values")" fi diff --git a/tests/quickshell/health-ui-contract.sh b/tests/quickshell/health-ui-contract.sh index a39fe77..8abbb38 100755 --- a/tests/quickshell/health-ui-contract.sh +++ b/tests/quickshell/health-ui-contract.sh @@ -65,7 +65,7 @@ rg -Fq 'SystemSettings.openGnomePanel("system", "users")' "$settings_dir/HealthP rg -Fq 'SystemSettings.openGnomePanel("sharing")' "$settings_dir/HealthPage.qml" \ || fail 'Fedora ownership boundary lost the Sharing handoff' rg -Fq 'SystemSettings.openGnomePanel("color")' "$settings_dir/HealthPage.qml" \ - || fail 'Fedora ownership boundary lost the Colour profiles handoff' + || fail 'Fedora ownership boundary lost the Color profiles handoff' rg -Fq 'SystemSettings.openGnomePanel("wellbeing")' "$settings_dir/HealthPage.qml" \ || fail 'Fedora ownership boundary lost the Digital wellbeing handoff' # Exact authored handoffs are asserted above. Also prove every panel named by @@ -307,7 +307,7 @@ jq -e ' and .fedoraHandoffs == [ {id:"users", label:"Users", action:"Open users"}, {id:"sharing", label:"Sharing", action:"Open sharing"}, - {id:"color", label:"Colour profiles", action:"Open colour"}, + {id:"color", label:"Color profiles", action:"Open color"}, {id:"wellbeing", label:"Digital wellbeing", action:"Open wellbeing"} ] and .summaryHeight == 126 diff --git a/tests/quickshell/lock-screen-helper-contract.sh b/tests/quickshell/lock-screen-helper-contract.sh index 6b12c22..c705f36 100755 --- a/tests/quickshell/lock-screen-helper-contract.sh +++ b/tests/quickshell/lock-screen-helper-contract.sh @@ -101,10 +101,10 @@ rg -Fq 'color = rgba(225, 226, 231, 1.0)' "$generated" || fail 'light solid mode rg -Fq 'inner_color = rgba(208, 213, 227, 0.85)' "$generated" || fail 'light password field does not match the themed fallback' rg -Fq 'font_color = rgba(55, 96, 191, 1.0)' "$generated" || fail 'light foreground does not match Theme.fg' rg -Fq 'outer_color = rgba(46, 125, 233, 0.9)' "$generated" || fail 'light focus ring does not match Theme.accent' -rg -Fq 'check_color = rgba(46, 125, 233, 1.0)' "$generated" || fail 'light success colour does not match Theme.accent' -rg -Fq 'fail_color = rgba(245, 42, 101, 1.0)' "$generated" || fail 'light error colour does not match Theme.red' -rg -Fq 'foreground="##6172b0"' "$generated" || fail 'light placeholder markup retained the dark muted colour' -rg -Fq 'foreground="##f52a65"' "$generated" || fail 'light failure markup retained the dark error colour' +rg -Fq 'check_color = rgba(46, 125, 233, 1.0)' "$generated" || fail 'light success color does not match Theme.accent' +rg -Fq 'fail_color = rgba(245, 42, 101, 1.0)' "$generated" || fail 'light error color does not match Theme.red' +rg -Fq 'foreground="##6172b0"' "$generated" || fail 'light placeholder markup retained the dark muted color' +rg -Fq 'foreground="##f52a65"' "$generated" || fail 'light failure markup retained the dark error color' rg -Fq 'blur_passes = 0' "$generated" || fail 'blur level zero did not disable passes' rg -Fq 'blur_size = 1' "$generated" || fail 'blur level zero did not use the safe size' rg -Fq 'fade_on_empty = true' "$generated" || fail 'fade-on-empty setting was ignored' @@ -120,12 +120,12 @@ fi write_settings '{"accentName":"orchid","colorScheme":"dark"}' run_helper generate rg -Fq 'outer_color = rgba(192, 153, 255, 0.9)' "$generated" || fail 'dark orchid accent did not drive the focus ring' -rg -Fq 'check_color = rgba(192, 153, 255, 1.0)' "$generated" || fail 'dark orchid accent did not drive the success colour' +rg -Fq 'check_color = rgba(192, 153, 255, 1.0)' "$generated" || fail 'dark orchid accent did not drive the success color' write_settings '{"accentName":"orchid","colorScheme":"light"}' run_helper generate rg -Fq 'outer_color = rgba(120, 71, 189, 0.9)' "$generated" || fail 'light orchid accent did not drive the focus ring' -rg -Fq 'check_color = rgba(120, 71, 189, 1.0)' "$generated" || fail 'light orchid accent did not drive the success colour' +rg -Fq 'check_color = rgba(120, 71, 189, 1.0)' "$generated" || fail 'light orchid accent did not drive the success color' write_settings '{"accentName":"not-a-real-accent","colorScheme":"dark"}' run_helper generate diff --git a/tests/quickshell/lock-screen-theme-contract.sh b/tests/quickshell/lock-screen-theme-contract.sh index e5afc8a..33da238 100755 --- a/tests/quickshell/lock-screen-theme-contract.sh +++ b/tests/quickshell/lock-screen-theme-contract.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash -# The lock screen follows the colour scheme. +# The lock screen follows the color scheme. # # It did not. hyprlock.conf shipped with Tokyo Night Moon hardcoded in six # places, so choosing light mode left the one screen a user sees most often @@ -26,11 +26,11 @@ fail() { [[ -r "$template" ]] || fail 'hyprlock.conf.template is missing, so nothing generates the lock screen' -# The committed template must carry no literal colours. One left behind is a -# colour that silently stays dark in light mode -- exactly the original bug. +# The committed template must carry no literal colors. One left behind is a +# color that silently stays dark in light mode -- exactly the original bug. literal="$(grep -vE '^\s*#' "$template" | grep -oE 'rgba\([0-9]+, *[0-9]+, *[0-9]+' || true)" [[ -z "$literal" ]] \ - || fail "the template still contains hardcoded colours, which will not follow the scheme: $literal" + || fail "the template still contains hardcoded colors, which will not follow the scheme: $literal" fixture="$(mktemp -d /tmp/panama-lockscreen.XXXXXX)" trap 'rm -rf "$fixture"' EXIT @@ -44,31 +44,31 @@ for scheme in dark light; do [[ -r "$generated" ]] || fail "no hyprlock.conf was generated for $scheme" # An unsubstituted placeholder is not a parse error to hyprlock; it is an - # invalid colour it quietly ignores, falling back to its own default. + # invalid color it quietly ignores, falling back to its own default. leftover="$(grep -oE '@[A-Z_]+@' "$generated" || true)" [[ -z "$leftover" ]] \ || fail "$scheme left placeholders unsubstituted: $leftover" - # Every colour hyprlock is given must be a complete decimal triple. It + # Every color hyprlock is given must be a complete decimal triple. It # takes rgba(r, g, b, a), NOT hex, and a hex value here is silently ignored. - while read -r colour; do - [[ -n "$colour" ]] || continue - grep -qE '^rgba\([0-9]{1,3}, [0-9]{1,3}, [0-9]{1,3}$' <<<"$colour" \ - || fail "$scheme produced a malformed colour: $colour" + while read -r color; do + [[ -n "$color" ]] || continue + grep -qE '^rgba\([0-9]{1,3}, [0-9]{1,3}, [0-9]{1,3}$' <<<"$color" \ + || fail "$scheme produced a malformed color: $color" done < <(grep -vE '^\s*#' "$generated" | grep -oE 'rgba\([^)]*' | sed 's/,[^,]*$//') # The Pango markup values are hex, and hyprlock wants them doubled-hashed. while read -r pango; do [[ -n "$pango" ]] || continue grep -qE '^##[0-9a-f]{6}$' <<<"$pango" \ - || fail "$scheme produced malformed Pango markup colour: $pango" + || fail "$scheme produced malformed Pango markup color: $pango" done < <(grep -vE '^\s*#' "$generated" | grep -oE '##[0-9a-fA-F]{6}') # The whole background block, not a fixed number of lines after it: the - # colour sits near the end, after the blur and noise settings. + # color sits near the end, after the blur and noise settings. background="$(awk '/^background \{/,/^\}/' "$generated" \ | grep -vE '^\s*#' | grep -oE 'color = rgba\([0-9]+' | grep -oE '[0-9]+$' | head -1)" - [[ -n "$background" ]] || fail "$scheme produced no background colour" + [[ -n "$background" ]] || fail "$scheme produced no background color" # The point of the whole exercise: a light lock screen must actually be # light. 128 splits the two cleanly for these palettes. diff --git a/tests/quickshell/migrations-contract.sh b/tests/quickshell/migrations-contract.sh index 6c663c7..f5000d0 100755 --- a/tests/quickshell/migrations-contract.sh +++ b/tests/quickshell/migrations-contract.sh @@ -4,7 +4,7 @@ # # The schema says what a setting IS; it cannot say what a setting USED to be. # Rename a key, change its units, or split one setting into two, and the stored -# value stops being recognised -- and unrecognised keys are deliberately carried +# value stops being recognized -- and unrecognized keys are deliberately carried # through untouched, so the user's choice silently stops taking effect with # nothing to explain it. # @@ -67,6 +67,6 @@ check '.failure.v == 3 and .failure.count == 2 and .failure.kept == true' \ # The promise that makes rollback safe. check '.preserved.kept == true' \ - 'a migration must not discard keys it does not recognise' '.preserved' + 'a migration must not discard keys it does not recognize' '.preserved' printf 'migrations contract: PASS\n' diff --git a/tests/quickshell/prism-gallery-contract.sh b/tests/quickshell/prism-gallery-contract.sh index 6730311..dd199da 100755 --- a/tests/quickshell/prism-gallery-contract.sh +++ b/tests/quickshell/prism-gallery-contract.sh @@ -26,7 +26,7 @@ rg -Fq 'FloatingWindow {' "$gallery" \ || fail 'gallery must be a normal tiled application window' if rg -q '#[0-9a-fA-F]{3,8}' "$gallery"; then - fail 'gallery hardcodes a colour instead of using the Theme vocabulary' + fail 'gallery hardcodes a color instead of using the Theme vocabulary' fi if rg -q 'loops:[[:space:]]*(Animation\.Infinite|-1)|running:[[:space:]]*true' "$gallery"; then fail 'gallery contains an always-running animation' diff --git a/tests/quickshell/settings-backup-contract.sh b/tests/quickshell/settings-backup-contract.sh index f119952..f6a4ba8 100755 --- a/tests/quickshell/settings-backup-contract.sh +++ b/tests/quickshell/settings-backup-contract.sh @@ -63,7 +63,7 @@ restore_result="$(run restore "$name")" || fail 'restore failed' [[ "$(jq -r .windowRounding "$settings")" == "6" ]] || fail 'restore lost a key' [[ "$(jq -r '.displays["DP-2"].scale' "$settings")" == "1.5" ]] \ || fail 'restore bypassed display confirmation by applying snapshot geometry' -[[ "$(jq -r '.favorites[0].id' "$home")" == "light.desk" ]] || fail 'restore did not bring back Home favourites' +[[ "$(jq -r '.favorites[0].id' "$home")" == "light.desk" ]] || fail 'restore did not bring back Home favorites' [[ "$(jq -r '.favorites[0].alias' "$home")" == "Desk" ]] || fail 'restore lost a Home alias' jq -e '.home.present == true and .home.data.favorites[0].id == "light.desk"' <<<"$restore_result" >/dev/null \ || fail 'restore did not return Home state for the live service to reload' @@ -169,7 +169,7 @@ jq -n '{ ] }} }' >"$backups/$invalid_home" -run restore "$invalid_home" >/dev/null 2>&1 && fail 'a snapshot with duplicate Home favourites was restored' +run restore "$invalid_home" >/dev/null 2>&1 && fail 'a snapshot with duplicate Home favorites was restored' [[ "$(jq -r .gapsOut "$settings")" == "91" ]] || fail 'an invalid Home snapshot still damaged desktop settings' printf '{ truncated' >"$home" diff --git a/tests/quickshell/settings-backup-live-contract.sh b/tests/quickshell/settings-backup-live-contract.sh index ba1af7f..8e00618 100755 --- a/tests/quickshell/settings-backup-live-contract.sh +++ b/tests/quickshell/settings-backup-live-contract.sh @@ -28,7 +28,7 @@ cleanup() { trap cleanup EXIT # The production command boundary must remain argv-only. -rg -Fq 'actionRun.exec([root.helperPath, "save", root.serialiseHomeState()]);' "$service" \ +rg -Fq 'actionRun.exec([root.helperPath, "save", root.serializeHomeState()]);' "$service" \ || fail 'save does not pass live Home state as one argument' rg -Fq 'actionRun.exec([root.helperPath, "restore", name]);' "$service" \ || fail 'restore is not executed through an argument array' diff --git a/tests/quickshell/settings-commit-reset-contract.sh b/tests/quickshell/settings-commit-reset-contract.sh index 93bec4b..67e8510 100755 --- a/tests/quickshell/settings-commit-reset-contract.sh +++ b/tests/quickshell/settings-commit-reset-contract.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash -# Two behaviours the settings rows depend on: +# Two behaviors the settings rows depend on: # # commitPreference(key, value) # One entry point for every row. A compositor-backed key must reach Hyprland @@ -11,7 +11,7 @@ # # restoreDefaults() # Panama keeps user state in more than one file. Resetting only the schema -# store would leave a customised Home accessory arrangement in place while +# store would leave a customized Home accessory arrangement in place while # claiming to have restored Panama's defaults. That is worse than having no # reset at all, because it is silent. @@ -168,7 +168,7 @@ done home_after="$(qs_for_harness ipc call settings-system-test homeState)" jq -e '.count == 0 and .initialized == false' <<<"$home_after" >/dev/null \ - || fail "reset left the Home accessory store customised: $home_after" + || fail "reset left the Home accessory store customized: $home_after" # Resetting a stored value does not itself apply compositor policy, so the last # isolated batch must contain the shipped default. diff --git a/tests/quickshell/settings-hyprland-write-contract.sh b/tests/quickshell/settings-hyprland-write-contract.sh index 78c3d2f..626da60 100755 --- a/tests/quickshell/settings-hyprland-write-contract.sh +++ b/tests/quickshell/settings-hyprland-write-contract.sh @@ -196,7 +196,7 @@ opacity=$(hyprctl -j getoption decoration:inactive_opacity | jq -r .float), \ writer-reported error=\"$(qs_for_harness ipc call settings-system-test status | jq -r .lastError)\"" fi -# Verification must recognise those shapes as success, not report them rejected. +# Verification must recognize those shapes as success, not report them rejected. last_error="$(qs_for_harness ipc call settings-system-test status | jq -r .lastError)" if [[ -n "$last_error" ]]; then fail "a verified typed write was reported as failed: $last_error" diff --git a/tests/quickshell/settings-ownership-contract.sh b/tests/quickshell/settings-ownership-contract.sh index 9a8eba2..f0feed6 100755 --- a/tests/quickshell/settings-ownership-contract.sh +++ b/tests/quickshell/settings-ownership-contract.sh @@ -139,14 +139,14 @@ if not start or not end: # Written as a Lua TABLE, not a string: the string form of a Hyprland gradient # carries only one stop, so writing it that way is accepted and silently # keeps whatever the previous accent left behind. Built through the same -# serialiseValue() SystemSettings.qml uses for every other gradient, rather +# serializeValue() SystemSettings.qml uses for every other gradient, rather # than a second hand-rolled (and unescaped) copy of that table syntax here. -if 'SystemSettings.serialiseValue({' not in without_comments: - raise SystemExit("ColorScheme does not build the focused border through the shared gradient serialiser") +if 'SystemSettings.serializeValue({' not in without_comments: + raise SystemExit("ColorScheme does not build the focused border through the shared gradient serializer") if 'colors: [root.accentBorderStart, root.accentBorderEnd]' not in without_comments: raise SystemExit("ColorScheme does not derive the focused-border gradient from the chosen accent") if 'active_border = ${activeBorder}' not in without_comments: - raise SystemExit("ColorScheme does not write the focused border as the serialised gradient table") + raise SystemExit("ColorScheme does not write the focused border as the serialized gradient table") if 'inactive_border = "${root.inactiveBorder}"' not in scheme: raise SystemExit("ColorScheme does not apply its effective inactive role")