Files
Nebula-OS/README.md
T
andrew ab869119cc Fix Qt compatibility and VM script docs
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.
2026-08-26 17:35:00 +12:00

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:

sh 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.