Getting started

Run Shady without guessing.

Start with a nested session, verify the compatibility path, then move to the spatial renderer and finally native DRM/libinput when you are ready.

Enter the development shell

Shady targets wlroots 0.20.2. The Nix shell supplies Meson, Ninja, Wayland tooling, Lua, GLES/EGL, and the test utilities.

Build the compositor

./tools/build.sh creates or reconfigures the Meson build and runs Ninja.

Run nested first

Use the Wayland backend inside your current compositor. This is the easiest place to validate clients and configuration.

Try the compatibility path

--safe bypasses the spatial renderer, physics, FPS interaction, and visual effects.

Move to a real VT

Once nested operation is reliable, use ./tools/run-native.sh for DRM + libinput on a normal Linux VT login.

Pick a rice

Each rice has nested and native launchers. Start with Afterglow (./rices/afterglow/run.sh), or read one as a template for your own config.

build + nested run
nix develop
./tools/build.sh

WLR_BACKENDS=wayland ./build/shady -s foot
safe compatibility path
WLR_BACKENDS=wayland ./build/shady --safe

# First native smoke test from a real VT
./tools/run-native.sh --safe -s foot

Regression gates

Fast checks before you trust a build.

The repository includes separate core and spatial gates for quick local validation.

stability checks
./tools/daily-driver.sh all
./tools/spatial-daily-driver.sh all
./tests/spatial-suite.sh