mesh/merge-gate checking again: the gate refused `unknown` because the controller judged with a node-engine validator pinned before mesh-host #117; mesh-co…
mesh/repo-check checking again: the gate refused `unknown` because the controller judged with a node-engine validator pinned before mesh-host #117; mesh-co…
mesh/delivery-group group feat/owned-paths checking: 0 of 2 member(s) ready
mesh/delivery superseded: a newer head of the same pull request
Every directory and archive resource carries `unknown`: move-out for a home folder whose program writes nothing there (the node-engine, delivered in mesh-host #117, moves the rest to ~/.local/state/mesh-moved/<module>/ with a list), module for ~/.ssh and ~/.claude, program elsewhere; `knows` keeps what a program or the operator relies on (powerlevel10k's compiled files, i3's scripts and the asus/g14 drop-ins, dunst's slack rule, betterbird's records, node-env's forge credential, issue 1033). Two shared folders are no longer declared. Each module's README says it. checks/owned holds every manifest to it; checks/sshdir stays while main's merge check runs it (issue 1035). Tests that pin a manifest follow the new key only. Reviewed in three rounds.
2.9 KiB
2.9 KiB
feh
The wallpaper as a module (novox/hq ADR 0208, research 026/05).
- Installs
fehand requiresx11-displayon its own machine. It holds no seat: a wallpaper is not a role anything else calls. - Carries the wallpaper itself.
wallpaper/default.jpgis built into an archive of the module (ADR 0205) and unpacked into~/.local/share/feh/wallpapers/, which the module owns. - Owns
~/.fehbg, which sets that image, filled, on every monitor, without rewriting itself (--no-fehbg). - Runs
~/.fehbgonce per session, from the session's start (thexinitrcslotnormal). - Binds
$mod+Shift+bto the same file, as its own i3 drop-in (50-feh.conf): the declared wallpaper back, after a monitor change.
Tools
| tool | does |
|---|---|
feh_set |
set images (one for all monitors, or one each) in a mode: fill, center, max, scale, tile. For this session; the declared wallpaper returns at the next login |
feh_current |
the declared wallpaper (from ~/.fehbg) and the one feh_set put up in this session |
feh_set never writes ~/.fehbg. A wallpaper that should stay is a change to this module, or a
setting once issue 168 closes, not a file the next push would overwrite.
What it improves on what was found
- The wallpaper no longer lives in the predecessor's tree.
~/.fehbgpointed into a directory of the retired predecessor's. Deleting that directory would have left the desktop black, silently. - One image file, the same on both workstations. The image was byte-identical on both. It is now the module's own.
What it leaves as found
- The predecessor's wallpaper directory. It is part of the predecessor's tree, which goes as a whole.
Migration (ADR 0182)
- The first push keeps the found
~/.fehbgonce, then writes the module's. - Once the
xorgmodule writes the session's start, delete the~/.fehbg &line from your own part of~/.xinitrc. - The image's origin is the predecessor's desktop module. Check that it may be redistributed before this catalogue is published anywhere public.
Blockers
x11-displayand thexinitrcslot are ADR 0208's. Until the controller knows them,mctlreads them as unknown.
Its i3 lines are a contribution (changed 2026-10-05, novox/hq ADR 0212)
The module no longer writes a file into i3's config.d. Its window-manager lines (the source is still
under files/i3/ where it had one) are a contribution to node-display-session. The i3 module places
them in its own configuration under a # <module> line, so this module depends on a window manager
being assigned beside it.
Files it does not know
Each directory or archive this module declares says how it treats a file it did not write (ADR 0422, ADR 0416).
~/.local/share/feh/wallpapers: holds only what this module declares; anything else is moved out by the node-engine to~/.local/state/mesh-moved/feh/with a list, never deleted (ADR 0422 §4).