Add Qt/QML desktop shell and Nebula.UI
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.
This commit is contained in:
@@ -7,14 +7,40 @@ A Linux desktop environment built around a custom compositor, shell, and service
|
||||
| Path | Purpose |
|
||||
|------|---------|
|
||||
| `core/nebula-core` | Core runtime and platform APIs |
|
||||
| `compositor/` | Compositor configuration (Sway) |
|
||||
| `shells/` | Desktop and bigscreen shell implementations |
|
||||
| `packages/` | Shared UI libraries, icons, API, and design tokens |
|
||||
| `compositor/` | Compositor configuration (Sway is temporary) |
|
||||
| `shells/` | Desktop and future Bigscreen shells |
|
||||
| `packages/` | Shared UI (`Nebula.UI`), icons, API, and design tokens |
|
||||
| `services/` | System services (audio, network, bluetooth, power, accounts) |
|
||||
| `session/` | Session manager and desktop entry |
|
||||
| `packaging/` | Distribution packaging (Ubuntu) |
|
||||
| `branding/` | Boot assets, wallpapers, and sounds |
|
||||
|
||||
## Shells
|
||||
|
||||
**Nebula Desktop** (production) is a C++20 Qt Quick/QML Wayland shell using LayerShellQt. See `shells/desktop/`.
|
||||
|
||||
**Nebula Bigscreen** is planned as a separate Qt Quick/QML shell with a controller-first interaction model, sharing `Nebula.UI` and Nebula Core.
|
||||
|
||||
Standalone Nebula applications may still use React/Tauri where that is a better fit. The operating-system shell does not.
|
||||
|
||||
An archived React desktop prototype lives in `shells/desktop/prototype-react/` as a design reference only.
|
||||
|
||||
## Current stack
|
||||
|
||||
```text
|
||||
Ubuntu
|
||||
↓
|
||||
Wayland
|
||||
↓
|
||||
Sway temporary compositor
|
||||
↓
|
||||
Nebula Shell Qt Quick/QML
|
||||
```
|
||||
|
||||
Applications and games render on their own Wayland/XWayland paths. They are not composited inside QML.
|
||||
|
||||
## Getting started
|
||||
|
||||
Documentation and build instructions will be added as components land.
|
||||
Desktop shell build instructions: `shells/desktop/README.md`.
|
||||
|
||||
The Qt shell must be compiled on Linux (the Ubuntu NebulaOS VM). It will not build on Windows.
|
||||
|
||||
Reference in New Issue
Block a user