Sweets

Introduction

Keyboard-driven dynamic Wayland compositor written in Rust

Sweets is a keyboard-driven dynamic Wayland compositor and window manager written in Rust. It uses Smithay for Wayland protocol, input, and rendering infrastructure, and Lua for configuration.

Sweets combines automatic tiling with floating windows, workspaces, and first-class multi-output behavior. It is designed for a fast keyboard workflow without sacrificing pointer support or native desktop integration.

Sweets is pre-release software. The native session is usable for development and daily testing, but some protocol and administration coverage remains incomplete.

Highlights

Dynamic window management

Choose from tile, monocle, centered, grid, columns, deck, and dwindle layouts. Mix tiled and floating windows across configurable workspaces and outputs.

Rust and Smithay foundation

Run Sweets directly on DRM/KMS or as a nested compositor inside an existing Wayland session. Rendering is damage-driven and presentation-aware.

Validated Lua configuration

Configure bindings, inputs, outputs, layouts, rules, and visual behavior in Lua. Invalid reloads are rejected while the last valid configuration stays active.

Native Wayland and X11

Use native XDG applications, layer-shell desktop components, and managed X11 applications through Sweets' private rootless XWayland server.

Runtime control

Inspect and control a running session through typed, owner-only IPC using the integrated sweets msg command.

Desktop integration

Sweets supports session lock, screen sharing, clipboard integration, idle management, output power control, and portable display-manager startup.

Get started

Current limitations

  • Touchscreen and tablet tool or pad input are not supported.
  • Animations, other visual effects, HDR, and tearing control are not available.
  • Virtual outputs are not available.
  • XWayland uses one global X11 DPI per server generation. Some legacy application DPI and game-input behavior remains application-specific.

Sweets is licensed under GPL-3.0-or-later.

On this page