cardputer-zero-session defines the post-login Cardputer Zero user session.
It belongs to cardputer-zero-os because the OS profile owns login handoff. It
does not implement the desktop itself.
The session exports:
XDG_SESSION_TYPE=wayland
XDG_CURRENT_DESKTOP=CardputerZero
XDG_SESSION_DESKTOP=CardputerZero
CARDPUTER_ZERO_SESSION=1
Then it reads:
/etc/cardputer-zero/session.conf
cardputer-zero-session
-> cardputer-zero-labwc-session
-> labwc on /dev/dri/cardputer-zero-internal
-> cardputer-zero-shell-session
-> cardputer-zero-idle
-> zero-window-agent
-> /opt/cardputer-zero-shell/bin/zero-shell-wayland
cardputer-zero-labwc-session constrains wlroots/labwc with:
WLR_DRM_DEVICES=/dev/dri/cardputer-zero-internal
WLR_BACKENDS=drm,libinput
WLR_RENDERER=pixman
cardputer-zero-shell-session also starts cardputer-zero-idle when present.
That helper does not implement a custom power manager. It wires the user's
screen-timeout preference to the standard wlroots tools swayidle and wlopm.
The preference file is:
~/.config/cardputer-zero/session/display-power.json
cardputer-zero-session may choose the session wrapper and set session-level
environment. It must not become:
- launcher,
- settings UI,
- terminal UI,
- file manager,
- app store,
- root service for user apps.
Those belong to cardputer-zero-shell or separate user applications.
If the labwc wrapper, zero-window-agent, the agent socket, or ZeroShell binary
is missing, the session exits. Recovery uses SSH, HDMI LightDM, and system
logs. The session must not start an alternate task backend.