Updates desktop shell and application code for cross-Qt compatibility: uses begin/endFilterChange for Qt 6.10+, gates LayerShell usage to Qt < 6.5, and adds include handling for generated QML type registration files so nebula-shell builds reliably. Also fixes qInfo size formatting casts and updates README commands to invoke run-sway-vm.sh via `sh` for more portable execution.
68 lines
2.1 KiB
Markdown
68 lines
2.1 KiB
Markdown
# NebulaOS
|
|
|
|
A Linux desktop environment built around a custom compositor, shell, and service stack.
|
|
|
|
## Structure
|
|
|
|
| Path | Purpose |
|
|
|------|---------|
|
|
| `core/nebula-core` | Core runtime and platform APIs (growing) |
|
|
| `core/applications` | Installed `.desktop` discovery and launching |
|
|
| `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 |
|
|
| `scripts/` | Development helpers (including the VMware shell wrapper) |
|
|
|
|
## Shells
|
|
|
|
**Nebula Desktop 0.1** is a C++20 Qt Quick/QML Wayland shell using LayerShellQt. It can discover installed applications and launch them (including Foot) from the GUI. 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.Applications`.
|
|
|
|
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 (development VM)
|
|
|
|
```bash
|
|
cd shells/desktop/shell
|
|
rm -rf build
|
|
cmake -S . -B build
|
|
cmake --build build -j$(nproc)
|
|
```
|
|
|
|
Then, from the repository root:
|
|
|
|
```bash
|
|
sh compositor/sway/dev/run-sway-vm.sh
|
|
```
|
|
|
|
or:
|
|
|
|
```bash
|
|
sway -c compositor/sway/nebula-sway.conf
|
|
```
|
|
|
|
The VMware wrapper sets `QT_QUICK_BACKEND=software`. Production `nebula-shell` does not. Details: `shells/desktop/README.md` and `compositor/README.md`.
|
|
|
|
The Qt shell must be compiled on Linux (the Ubuntu NebulaOS VM). It will not build on Windows.
|