Files
hq/01-RESEARCH/026-the-graphical-session-as-modules/00-overview.md
T
jochen 907051c21d
mesh/merge-gate pass: the change touches no module of the mesh's graph
mesh/repo-check pass: its merge-check.sh passed
mesh/delivery delivered
Keep 012 and 027 open and give every leftover of the closed efforts an issue (issue 408)
The review found questions no record decides: 012's minimum-viable-node
half and 027's packaging, secrets, sizing and leftovers questions, so both
stay active. Where the record lives (006) is issue 414, and 037's two
other leftovers are issues 415 and 416; to-be 06 now points at issue 414.
2026-10-10 21:48:28 +02:00

6.4 KiB

status, initiated, touches, became
status initiated touches became
graduated 2026-10-04
02-DECISIONS/0176-the-login-shell-is-a-node-seat-and-execute-is-its-contract.md
02-DECISIONS/0177-a-unit-may-be-user-scoped-and-the-service-manager-is-a-node-seat.md
02-DECISIONS/0182-inside-a-home-the-mesh-owns-what-it-places-and-holds-the-rest-as-found.md
02-DECISIONS/0203-the-accounts-environment-is-one-modules-and-every-module-contributes-to-it.md
02-DECISIONS/0204-a-module-contributes-shell-code-to-the-login-shell-in-named-slots.md
02-DECISIONS/0205-software-the-distribution-does-not-package-ships-as-a-pinned-archive-of-the-module.md
03-DESIGN/01-to-be/37-the-operators-machine.md
03-DESIGN/01-to-be/38-building-the-operators-machine.md
04-ISSUES/168-a-setting-reaches-every-file-and-contribution/00-report.md
02-DECISIONS/0208-the-graphical-session-is-one-module-per-piece-on-the-meshs-seats.md
02-DECISIONS/0210-a-tools-configuration-is-its-seat-holders-and-every-other-module-extends-it-through-the-seat.md
02-DECISIONS/0211-a-machines-power-is-a-node-seat-its-moments-take-contributions-and-its-states-are-events.md
02-DECISIONS/0212-a-seat-says-what-it-receives-and-the-machines-hotkeys-are-a-seat.md
02-DECISIONS/0207-a-module-depends-on-the-node-seats-that-apply-its-resources.md
02-DECISIONS/0215-the-machines-message-bus-is-a-node-seat-and-is-never-restarted-live.md
02-DECISIONS/0255-the-bar-takes-blocks-as-data-from-the-module-that-knows-the-hardware-placed-where-the-machine-has-it.md
02-DECISIONS/0260-a-bar-block-shows-a-value-its-module-keeps-on-the-bus-and-no-module-reads-anothers-files.md
03-DESIGN/01-to-be/42-the-machines-modules-in-order.md

026 — The graphical session as modules

What is investigated

The workstations' graphical session as modules of the mesh, at the same level as the shell (to-be 41): a package, files under the account's home, a seat, and nothing that names a machine. The pieces are:

  • the login manager;
  • how a session starts and what environment it gets;
  • the display server (X today, Wayland as a sibling);
  • the window manager (i3, and sway as its Wayland sibling);
  • the terminal emulator (xterm);
  • the session's companions: bar, compositor, launcher, notifier, lock and idle, clipboard, wallpaper, theming, fonts.

To-be 38 names this WP7, and says each seat begins with a record naming its holders and verbs. To-be 37 §4 leaves one question for the resolver: whether a held seat can gate another's assignment.

Why

The operator asked for the graphical modules next, at the shell's level, and for one consistent experience across machines. Since the predecessor retired, nothing manages the workstations' desktops. Measured in 01:

  • Two workstations carry one 983-line predecessor module's output, still byte-identical in its core.
  • One workstation also carries another machine's hardware fragments.
  • One runs a session that predates two fixes, with two notification daemons and two portals.
  • The session's environment is a hand-kept second copy of the account's, beside the one the mesh now writes.

How it is approached

Adopting is also improving (the operator, 2026-10-04). A module is not a copy of what a machine does today. Making it is the moment to fix what is broken, drop what is dead, choose the better tool and remove the leftovers. Every module's design lists its improvements over today. Every module also serves tools, many of them, for reading, acting and diagnosing; a module that only places a package and a file is unfinished. The tools are catalogued in 026/05.

What it touches

  • The seat table: up to ten node seats.
  • The resolver: a seat held on a node gating another module's assignment.
  • The contribution mechanism of ADR 0204: whether it generalises beyond shells, or whether tools' own drop-in directories serve.
  • The host's user-scoped units (mesh-host #72, still open).
  • Settings for per-machine values (issue 168).
  • ADR 0205's archive for the two pieces the distribution does not package.

Documents

What it became

Closed 2026-10-10. The graphical session is one module per piece on the mesh's seats (ADR 0208): a tool's configuration is its seat holder's (ADR 0210), the hotkeys and the power are seats (ADR 0212, ADR 0211), the machine's message bus is a seat never restarted live (ADR 0215), and the bar takes blocks as data from the bus (ADR 0255, ADR 0260). A module depends on the node seats that apply its resources (ADR 0207), which answers whether a held seat gates another module. The order of building and rolling out is to-be 42.