Files
Nebula-OS/compositor/README.md
T
andrew b0c95b9e78 Add desktop app service and VM dev session tooling
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.
2026-08-26 17:19:30 +12:00

2.0 KiB

Compositor

Sway is the temporary Wayland compositor while Nebula Desktop is developed. Configuration lives in sway/nebula-sway.conf.

Sway currently provides:

  • Wayland compositor
  • application window management
  • XWayland
  • input and the pointer cursor
  • output handling

Nebula provides the visible shell (Qt Quick/QML via LayerShellQt). The Sway config must not enable a Sway bar.

A custom Nebula compositor is a later milestone. Do not treat this Sway setup as the final architecture.

Ubuntu/Linux
 ↓
Wayland
 ↓
Sway                 now
Nebula compositor    later
 ↓
Nebula Shell
Qt Quick/QML

Development session

From the NebulaOS repository root:

sway -c compositor/sway/nebula-sway.conf

Recommended on the Ubuntu VMware VM (repo-root cd, cursor environment, software cursors):

./compositor/sway/dev/run-sway-vm.sh

Sway then autostarts Nebula Desktop through scripts/run-nebula-vm.sh.

Skip shell autostart:

NEBULA_SHELL_AUTOSTART=0 ./compositor/sway/dev/run-sway-vm.sh

Output / resolution

The development config uses scale 1 and requests 1920x1080 when that mode is advertised. If it is not, Sway keeps the preferred mode. This is a VM convenience, not a production requirement.

swaymsg -t get_outputs
swaymsg output <name> mode 1920x1080
swaymsg output <name> scale 1

Cursor

seat * xcursor_theme Adwaita 24
XCURSOR_THEME=Adwaita
XCURSOR_SIZE=24

Requires adwaita-icon-theme. A Nebula-branded cursor theme is a later task.

WLR_NO_HARDWARE_CURSORS=1 is VMware-specific and is set by run-sway-vm.sh, not by production session files.

Emergency shortcuts

Shortcut Action
Super+Enter open Foot
Super+Shift+E exit Sway
Super+Shift+C reload Sway config

Normal application launching is done from the Nebula launcher, not these shortcuts.

Rendering

scripts/run-nebula-vm.sh sets QT_QUICK_BACKEND=software for the VMware guest GPU. Production nebula-shell must not set that variable.