Coherence: one component per idea, one spelling per word, one truth per claim
Claude-Session: https://claude.ai/code/session_01Ms2FbjQy31TVf3CEvQhGM8
This commit is contained in:
@@ -73,18 +73,21 @@ the comments of the components themselves, because knowing what a thing was
|
||||
modelled on explains why it behaves the way it does.
|
||||
|
||||
GNOME is not gone from the machine: `gnome-control-center` is a declared
|
||||
dependency, and Panama's own Settings hands off to it for the panels it
|
||||
deliberately does not own — Online Accounts, Color, Sound, Network, Keyboard,
|
||||
Privacy, Wellbeing, Accessibility, and System for users, date and time, region
|
||||
and remote desktop. The allow-list in
|
||||
[`services/SystemSettings.qml`](config/dot/quickshell/services/SystemSettings.qml)
|
||||
is what decides; anything not on it is a panel Panama owns itself.
|
||||
dependency, and two rows in Panama's own Settings still open it. Adding an
|
||||
online account goes through the provider's dialog, because the OAuth sign-in
|
||||
runs inside a library Fedora ships without a binding anything else can call.
|
||||
And Digital wellbeing — screen time and break reminders — is the one panel of
|
||||
GNOME's that still does something Panama does not. Everything else it used to
|
||||
hand over is a page here now, and
|
||||
[`tests/quickshell/gnome-handoff-contract`](tests/quickshell/gnome-handoff-contract)
|
||||
fails the build if a door back opens onto a panel Panama owns, because those
|
||||
rows kept working perfectly long after they stopped being true.
|
||||
|
||||
Displays is one of the panels it owns, and the only one where a wrong answer
|
||||
can leave you unable to see well enough to undo it. So every change there is
|
||||
applied as one complete layout, read back from the compositor, and reverted
|
||||
after fifteen seconds unless you keep it — resolution, scale, rotation,
|
||||
position and primary display, and now colour profile, bit depth, SDR
|
||||
position and primary display, and now color profile, bit depth, SDR
|
||||
brightness and saturation, and mirroring with them. Two of those opt out of
|
||||
part of that, for reasons rather than convenience. A per-display variable
|
||||
refresh rate override is applied but never verified, because `hyprctl` reports
|
||||
@@ -100,7 +103,7 @@ DDC, and the buttons on the bezel change it behind our back.
|
||||
| `config/dot/hypr/` | Compositor config. **Lua, not hyprlang** — see its README |
|
||||
| `config/dot/quickshell/` | The shell: bar, dock, Continuum overview, Settings, Screen Intelligence, focus sessions, quick settings, notifications, screenshot UI |
|
||||
| `config/containers/` | Container definitions systemd runs as units — currently the speech-to-text server behind dictation |
|
||||
| `config/dot/vicinae/` | Raycast-style launcher, themed. Its commands live in `config/local/share/vicinae/` — script commands (settings deep links, power menu, reminders, window switcher, kill process, SSH hosts, recent files, color picker), and one compiled extension that adds web search with live suggestions. File search, calculator, clipboard, and emoji are Vicinae's own |
|
||||
| `config/dot/vicinae/` | Raycast-style launcher, themed. Its commands live in `config/local/share/vicinae/` — script commands (settings deep links, power actions, projects, reminders, window switcher, kill process, SSH hosts, recent files, color picker), and one compiled extension that adds web search with live suggestions. File search, calculator, clipboard, and emoji are Vicinae's own |
|
||||
| `config/dot/uwsm/` | Session environment (see the uwsm caveat in the hypr README) |
|
||||
| `config/dot/wofi/` | Fallback launcher, in case the shell fails to start |
|
||||
| `config/dot/xdg-desktop-portal/` | Portal backend routing |
|
||||
@@ -108,7 +111,11 @@ DDC, and the buttons on the bezel change it behind our back.
|
||||
New machines get a welcome card on first start, teaching the handful of keys
|
||||
that matter and reachable afterwards from the launcher. `SUPER + /` shows every
|
||||
shortcut the machine has, read from the live keymap so a rebind appears there
|
||||
without anything being kept in sync. Settings carries a
|
||||
without anything being kept in sync. Rebinding is Settings' job, and so is
|
||||
adding a shortcut of your own or assigning the four-finger touchpad swipes: an
|
||||
entry names an application, a shell action or a window move rather than
|
||||
carrying a command, so a hand-edited settings file can move a key but cannot
|
||||
make one run something arbitrary. Settings carries a
|
||||
[manual](config/dot/quickshell/manual/) written for the person using the
|
||||
desktop rather than the person building it, opening with a chapter for people
|
||||
arriving from GNOME, macOS or Windows.
|
||||
@@ -132,7 +139,8 @@ migrations/ One repair per file, for machines installed before a change
|
||||
config/
|
||||
bash/ .bashrc, aliases, env (env is gitignored)
|
||||
copy/ Files copied verbatim over / (needs sudo)
|
||||
dot/ Symlinked into ~/.config
|
||||
dot/ Symlinked into ~/.config; quickshell/manual/ is the manual
|
||||
Settings renders
|
||||
firefox/ Vendored Firefox chrome, linked into the browser profile
|
||||
containers/ Quadlets, linked into ~/.config/containers/systemd
|
||||
local/ Icons, the cursor theme, and the launcher's commands and
|
||||
@@ -145,7 +153,6 @@ setup/
|
||||
packages/ One package per line; extras/ holds the optional categories
|
||||
scripts/ Run in order by ./install
|
||||
tests/ Contracts. See below
|
||||
manual/ The user manual, rendered in Settings
|
||||
docs/ Settings reference, and the design specs behind the work
|
||||
```
|
||||
|
||||
@@ -210,7 +217,7 @@ readable, and an indented line belongs to the entry above it — which is how OB
|
||||
carries its sixteen plugin extensions as one thing to tick.
|
||||
|
||||
Hooks are the extension point: drop a script at `~/.config/panama/hooks/theme-set`
|
||||
and it runs whenever the colour scheme changes, with the scheme and accent as
|
||||
and it runs whenever the color scheme changes, with the scheme and accent as
|
||||
arguments. Same for `post-upgrade` and `post-migrate`, and a `<name>.d/`
|
||||
directory beside each so several things can react without fighting over one
|
||||
file. A broken hook is reported and stepped over, never fatal. Samples are
|
||||
@@ -236,6 +243,8 @@ the current upstream and reports a failure rather than working around it.
|
||||
Adding one is adding a file to `setup/apps/`, and the file has to say why the
|
||||
exception exists.
|
||||
|
||||
None of the scripts in this repository carry a `.sh` extension. A shebang and
|
||||
the executable bit already select the interpreter, and the extension only
|
||||
No script in this repository carries a `.sh` extension, with one deliberate
|
||||
exception: each repair in `migrations/` is named `<timestamp>.sh`, because
|
||||
`panama-migrate` finds them by globbing exactly that. Everywhere else a shebang
|
||||
and the executable bit already select the interpreter, and the extension only
|
||||
becomes something to keep in sync — which it did not stay.
|
||||
|
||||
Reference in New Issue
Block a user