Write down where all of this came from
Section G, the closeout. UPSTREAM-INSPIRATION gains the second and largest borrowing round: what was taken from omarchy, end-4, caelestia, ML4W and HyDE, what was rebuilt rather than transplanted, and -- the part that matters more -- what was declined and why. Wallpaper-derived colour is declined on identity, because dynamic colour is how rices end up looking like each other. Audio visualisers are declined because a continuously repainting equaliser is the GPU-pegging animation this project avoids. Patching application internals to theme them is declined because the maintenance is unbounded and lands on whoever is holding the desktop that day. DESKTOP-PARITY gains a Portable machines section, which it has never had, because until yesterday Panama was a desktop configuration in the code as well as on the machine. Nine rows, one of them honest about not having run on hardware with a lid. The remaining-gaps list gains the four things now known to be missing rather than the one. The README stops describing a desktop from before yesterday: migrations in the install flow, the welcome and cheatsheet and manual, and laptops working with every surface hiding itself where the hardware is absent. The plan records its own outcome per section, including the two places the work departed from it: D2's template renderer deferred once D1 removed the duplication it existed to fix, and E1 inverted after using it for an afternoon.
This commit is contained in:
@@ -39,6 +39,29 @@ Last live audit: 2026-08-17, Fedora 44, Hyprland 0.56.2, Quickshell 0.3.0.
|
||||
| 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, `Check System Health` in Vicinae, a degraded-only bar indicator, redacted reports, and bounded Panama-owned repairs | Live |
|
||||
|
||||
## Portable machines
|
||||
|
||||
Panama was a desktop configuration until 2026-08-22, in the code as well as on
|
||||
the machine: there was no reference to a battery, a lid, or a power source
|
||||
anywhere in it, and `hypridle.conf` said "This is a desktop" in its own header.
|
||||
|
||||
| Capability | Panama implementation | Status |
|
||||
|---|---|---|
|
||||
| Battery level | `services/Battery.qml` reads sysfs the way Vitals reads procfs; bar indicator hides entirely without a battery | Live |
|
||||
| Power source | `panama-hw ac`; a machine with no mains supply reports as on wall power, so a desktop is never treated as running out | Live |
|
||||
| Charge threshold | Power page control, only where the firmware exposes a ceiling; written through `panama-sudo` | Live |
|
||||
| Idle timings per power source | hypridle holds one set at a time, so `panama-idle` rebuilds its config when the charger comes or goes | Live |
|
||||
| Lock on lid close | hypridle's `before_sleep_cmd` already locks, so a lid-close suspend is a locked suspend | Live |
|
||||
| Clamshell / docked | A logind `handle-lid-switch` inhibitor held while an external display is connected. No lid watcher, and a failure returns logind's default | Live, untested on a lid |
|
||||
| Display arrangement on reconnect | `Displays.plannedRestore()` reapplies a confirmed layout, refusing when the stored mode is not offered | Live |
|
||||
| Charger and low-battery notices | `StatusEvents`; the charger is ambient so DND quiets it, critical battery is not | Live |
|
||||
| Hardware predicates | `panama-hw`: laptop, battery, ac, lid-closed, external-monitor, clamshell, touchpad, nvidia | Live |
|
||||
|
||||
The clamshell path is the one row that has not run on hardware with a lid.
|
||||
Everything testable about it is tested; the end-to-end behaviour of closing a
|
||||
real lid on a docked machine is not, and the helper's header says so rather
|
||||
than letting silence imply otherwise.
|
||||
|
||||
## System health and recovery
|
||||
|
||||
Panama stays silent while the desktop is healthy. A compact bar indicator
|
||||
@@ -91,6 +114,14 @@ a polished general-purpose desktop can go beyond the current shell.
|
||||
|
||||
1. A real external RustDesk test while hyprlock is active. Local process state
|
||||
cannot prove what a remote client sees or whether input is accepted.
|
||||
2. Closing a real lid on a docked laptop. The inhibitor, the predicates and the
|
||||
decision are all tested; the physical gesture is not.
|
||||
3. A keyboard-layout change notice. Hyprland reports the active keymap but not
|
||||
a change event Quickshell already consumes, so this needs either polling or
|
||||
new event plumbing, and a single-layout machine cannot test it.
|
||||
4. Sticky keys, slow keys and bounce keys. AccessX is an X11 server feature
|
||||
with no Wayland equivalent; GNOME, macOS and Windows all ship these.
|
||||
5. An on-screen keyboard, for a touch or convertible machine.
|
||||
|
||||
KDE Connect, the printer UI, Tesseract, and ZBar are installed and remain
|
||||
tracked in `setup/packages/hyprland-packages`.
|
||||
|
||||
Reference in New Issue
Block a user