Introduces a new `core/applications` QML/C++ module (`Nebula.Applications`) to discover `.desktop` entries, expose filterable application models, and launch installed apps safely from the shell. The desktop launcher now uses real installed apps with themed icon loading and fallback glyphs, adds output-aware surface sizing via `OutputTracker`, and wires in image/icon providers. It also adds VMware-focused Sway/shell wrapper scripts, updates Sway config/session env defaults, and refreshes README docs to document the new development flow and Desktop 0.1 behavior.
2.1 KiB
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
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)
cd shells/desktop/shell
rm -rf build
cmake -S . -B build
cmake --build build -j$(nproc)
Then, from the repository root:
./compositor/sway/dev/run-sway-vm.sh
or:
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.