# 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. ```text Ubuntu/Linux ↓ Wayland ↓ Sway now Nebula compositor later ↓ Nebula Shell Qt Quick/QML ``` ## Development session From the NebulaOS repository root: ```bash sway -c compositor/sway/nebula-sway.conf ``` Recommended on the Ubuntu VMware VM (repo-root `cd`, cursor environment, software cursors): ```bash sh compositor/sway/dev/run-sway-vm.sh ``` Sway then autostarts Nebula Desktop through `scripts/run-nebula-vm.sh`. Skip shell autostart: ```bash NEBULA_SHELL_AUTOSTART=0 sh 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. ```bash swaymsg -t get_outputs swaymsg output mode 1920x1080 swaymsg output scale 1 ``` ### Cursor ```text 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.