Files
hq/01-RESEARCH/026-the-graphical-session-as-modules/00-overview.md
T
jochen f515d8b6b2
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 superseded: a newer head of the same pull request
Close twelve research efforts their decisions already settled (issue 408)
Ten graduated and two abandoned efforts still said active, so the record
read as open questions that later ADRs and designs had answered. Each now
names in became: what decided or overtook it. To-be 45's undecided item
moves from research 017 to issue 409, and research 037's shell follow-up
is issue 410.
2026-10-10 21:43:53 +02:00

6.1 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/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). The order of building and rolling out is to-be 42.