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