Files
Nebula-OS/compositor/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

86 lines
2.0 KiB
Markdown

# 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 <name> mode 1920x1080
swaymsg output <name> 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.