Introduction
Dynamic tiling Wayland compositor inspired by XMonad and DWM
Sweets is a fast, minimal, dynamic tiling Wayland compositor built on wlroots and configured in Lua. Windows tile automatically into a master/stack layout, and you drive everything from the keyboard — with mouse move and resize when you want it.
It draws on ideas from XMonad and DWM: a small, predictable core, dynamic tiling, and configuration that lives in plain text rather than a settings UI.
Highlights
Dynamic tiling
A master/stack layout that reflows as windows open and close, with gaps, borders, and per-monitor workspaces.
Configured in Lua
The global sweets table sets behavior, devices, monitors, and bindings. A
broken config never crashes the compositor.
Runtime control
Query and command the compositor over a Unix socket with the sweetctl
CLI.
Fail-safe reload
Sweets watches your config and reloads it automatically; a bad edit keeps the last good configuration.
Get started
Install Sweets
Install from a package or build from source, then start a session.
Configuration
How the Lua config loads, layers, and reloads.
Key Bindings
Bind keys to actions, plus the packaged defaults.
IPC
Control Sweets at runtime with sweetctl.
Current limitations
- No XWayland — native Wayland apps only.
- Layer-shell launchers receive keyboard focus. Dedicated screen lockers
should use
ext-session-lock-v1; legacy layer-shell lockers are not treated as secure locks.
Sweets is licensed under the GPL-3.0.