This document defines the interface between cardputer-zero-os and
cardputer-zero-shell.
cardputer-zero-os
-> owns login, session, compositor startup, privilege policy
cardputer-zero-shell
-> owns post-login launcher and task UI
After Zero greeter PAM authentication:
/usr/local/bin/cardputer-zero-session
-> /usr/local/bin/cardputer-zero-labwc-session
-> labwc -S /usr/local/bin/cardputer-zero-shell-session
-> zero-window-agent
-> /opt/cardputer-zero-shell/bin/zero-shell-wayland
The shell path can be overridden in:
/etc/cardputer-zero/session.conf
using:
CARDPUTER_ZERO_WAYLAND_SHELL=/path/to/zero-shell-waylandThe shell must run as the authenticated user:
pi 1234 /opt/cardputer-zero-shell/bin/zero-shell-wayland
cardputer-zero-session exports:
XDG_SESSION_TYPE=wayland
XDG_CURRENT_DESKTOP=CardputerZero
XDG_SESSION_DESKTOP=CardputerZero
CARDPUTER_ZERO_SESSION=1
The labwc wrapper exports:
WLR_DRM_DEVICES=/dev/dri/cardputer-zero-internal
WLR_BACKENDS=drm,libinput
WLR_RENDERER=pixman
- authenticated user session,
- Wayland compositor on the internal DRM output,
zero-window-agentas the authoritative task-state and task-action backend,- device permissions,
- APPLaunch data directories,
zero-shell-control,- root-owned
zero-key-policy.servicefor global Esc and internal-seat activation policy, zero-helper,- polkit agent.
- launcher home UI,
- application scanner,
- app store UI,
- file manager UI,
- terminal UI,
- settings UI,
- system monitor UI.
Those are shell or application responsibilities.