Watch
1
0
Fork
You've already forked SouveraineOS
0

shell-tree unification: done, zero stranded files

This commit is contained in:
Fimeg 2026-07-31 08:25:09 -04:00
commit 705e7b55ae
2 changed files with 44 additions and 33 deletions

View file

@ -82,7 +82,7 @@ Four that are cheap relative to what they unblock:
| 37 | ["Back" as a first-class verb](37-navigation-back-verb.md) | Our `Gestures.qml` is already the compositor half; `can_go_back` is the dial's enabled/reason. |
| 38 | [Pill swipe-to-max swaps the keyboard](38-pill-swipe-osk-swap.md) | Micro. The only route to a terminal keyboard since stevia dropped its layout. |
| 39 | [Audio levels as tracked state](39-audio-levels-as-state.md) | Defaults + roles, **not** a save bug — WirePlumber persistence measured working 07-28. Do not add a second writer. |
| — | [Unify the shell trees](unify-shell-trees-laptop-phone.md) | **Re-measured 2026-07-31: 918 files → 7.** The `ii-base` pin + `ii-phone` overlay closed it; laptop-only is now **0**. No longer blocks anything. Six stranded files left to promote or drop. |
| — | [Unify the shell trees](unify-shell-trees-laptop-phone.md) | **DONE 2026-07-31** — verified by md5 across both devices: 918 differing files → 7, all 7 declared in the `ii-phone` overlay, laptop-only **0**, zero stranded. The KEEP list was promoted to repo overrides, not lost. Blocks nothing; archive it. |
## Conventions

View file

@ -1,9 +1,8 @@
# TASK: Unify the Souveraine shell trees — laptop, phone, SouveraineOS
**Status:** **ALL BUT DONE — re-measured 2026-07-31.** The drift this task was
filed against is gone; what remains is six files. It does **not** need a
dedicated session any more, and it is **no longer blocking** durable shell fixes
from reaching the phone.
**Status:** **DONE — verified 2026-07-31.** Every goal in this file is met.
Zero stranded files; the drift it was filed against is gone; it blocks nothing.
Ready to move to `archive/`.
**Filed:** 2026-07-21
## Re-measured 2026-07-31 (md5 of every file, both devices)
@ -25,34 +24,46 @@ The 4 phone-only files are the declared overlay and are correct:
`AutoRotateToggle.qml`, `WallpaperShuffleToggle.qml`,
`AndroidAutoRotateToggle.qml`, `AndroidWallpaperShuffleToggle.qml`.
### What is actually left — six files
### Stranded files remaining: ZERO
These differ in content between laptop and phone and are the last of §2's
"stranded edits". Each is either a patch to promote into `surfaces/quickshell/`
+ the manifest, or upstream drift to drop:
Every one of the 7 content differences is a **declared, version-controlled**
phone override. `ii-phone/` is exactly 11 files and accounts for all of them:
- `modules/ii/bar/BarContent.qml`
- `modules/ii/bar/ClockWidget.qml`
- `modules/ii/bar/Resources.qml`
- `modules/ii/onScreenKeyboard/layouts.js`
- `scripts/colors/switchwall.sh`
- `services/Audio.qml`
```
modules/common/models/quickToggles/AutoRotateToggle.qml
modules/common/models/quickToggles/WallpaperShuffleToggle.qml
modules/ii/bar/BarContent.qml ← carrier + signal, far-left
modules/ii/bar/ClockWidget.qml ← per-instance date format
modules/ii/bar/Resources.qml ← one rotating stat (540px bar)
modules/ii/onScreenKeyboard/layouts.js
modules/ii/sidebarRight/quickToggles/androidStyle/AndroidAutoRotateToggle.qml
modules/ii/sidebarRight/quickToggles/androidStyle/AndroidToggleDelegateChooser.qml
modules/ii/sidebarRight/quickToggles/androidStyle/AndroidWallpaperShuffleToggle.qml
scripts/colors/switchwall.sh ← skip the blocking upscayl prompt
services/Audio.qml
```
(A seventh, `AndroidToggleDelegateChooser.qml`, differs **by design** — the
phone gets `ii-phone`'s copy, which carries the two overlay toggles.)
That is §3's "declared home for phone-specific files", built and working.
### Corrections to the 07-21 record
### §2 is done too — the KEEP list was promoted, not lost
- The "KEEP" list below names `services/Cellular.qml`,
`services/Souveraine.qml` and `modules/ii/dock/DockStack.qml` as phone-only
files to preserve. **All three are gone** — absent from the phone, from
`.ii-previous`, from the staging tree and from `ii-phone/`, and nothing in the
live shell references `Cellular` any more. They were lost before 2026-07-31;
do not plan around them.
- The claim that `deploy.sh --phone` "only rsyncs `surfaces/quickshell/`" is
**no longer true** — it rsyncs the pinned `ii-base` with `--delete` and then
the `ii-phone` overlay. That `--delete` is why an undeclared phone-local file
cannot survive; anything phone-specific **must** live in `ii-phone/`.
The 07-21 record lists `services/Cellular.qml`, `services/Souveraine.qml` and
`modules/ii/dock/DockStack.qml` as untracked phone-only files at risk. **All
three are now in the repo, in `deploy.sh`'s manifest, and live on the phone** —
promoted to first-class overrides exactly as §2 asked. They are no longer in the
`ii` tree because they no longer belong there.
(Beware when auditing this: those files live in the **souveraine** tree, not
`ii`. Checking `~/.config/quickshell/ii/services/Cellular.qml` reports them
missing and is the wrong tree — that mistake was made on 2026-07-31 and briefly
recorded here as data loss. They were never lost.)
### One correction that does stand
`deploy.sh --phone` no longer "only rsyncs `surfaces/quickshell/`" — it rsyncs
the pinned `ii-base` **with `--delete`**, then layers `ii-phone`. That
`--delete` is precisely why an undeclared phone-local edit cannot survive a
deploy, and why the overlay above is the only correct home for one.
**Owner rule:** builds on archdev only; deploy from laptop. See
`souveraine-build-deploy` memory + [[souveraine-work-rules]].