Introduce a new production desktop shell at `shells/desktop/shell` built with C++20, Qt Quick/QML, and LayerShellQt, including top bar, launcher, desktop surfaces, shell state, and mock app data. Add the shared `packages/nebula-ui` QML module (theme, controls, focus, icons) and wire it into the shell build. Retire the old GTK/WebKit native host by removing `shells/desktop/native`, move the React shell UI to `shells/desktop/prototype-react` as an archived design reference, and update root/compositor/session documentation to reflect the new Linux-only production architecture and temporary Sway role.
Nebula Desktop UI — prototype (archived)
DESIGN REFERENCE ONLY
NOT THE PRODUCTION NEBULA SHELL
This directory is the original React + Vite desktop chrome. It remains only as a visual and behavioural reference while the Qt Quick/QML shell catches up.
Do not add production functionality here.
The production Nebula Desktop shell is:
shells/desktop/shell
C++20 + Qt 6 + Qt Quick/QML + LayerShellQt
This prototype must not be launched as the OS shell. It does not talk to Wayland layer-shell, and it is not wired to Nebula Core.
What this is for
- comparing layout, colour, spacing, and motion against
shells/desktop/shell - checking launcher search, mock launch, and top-bar treatment
- discarding this tree later, once Qt parity is accepted
Surfaces (browser preview only)
| URL | Renders |
|---|---|
/?surface=preview (default) |
Combined mockup |
/?surface=desktop |
Background only |
/?surface=topbar |
Top bar only |
/?surface=launcher |
Launcher only |
Preview on a development machine
npm install
npm run dev
npm run lint
npm run build
Oxlint applies to this JavaScript prototype only. It is not used for the Qt shell.