miracle-wm is a hackable, stylish, and modern Wayland compositor built on Mir. It brings the keyboard-driven efficiency of i3/Sway to a richer, more extensible experience with smooth animations, a powerful WebAssembly plugin system, and a clean YAML configuration.
- Manual tiling β organize windows into horizontal, vertical, tabbed, or stacked layouts with full keyboard control
- Floating windows β seamlessly mix floating and tiled windows in the same workspace
- Smooth animations β window open/close, moves, resizes, and workspace transitions all animate out of the box
- WebAssembly plugin system β extend and override core behavior without touching a line of C++
- i3/Sway-compatible IPC β works with
swaymsg, Waybar, and the rest of the ecosystem you already know - Hot-reload config β apply changes instantly with
Meta+Shift+R, no restart required - Multi-monitor support β independent workspaces across outputs, fully configurable
- Accessibility built in β magnifier, slow keys, sticky keys, and cursor configuration included
Plugins run as sandboxed WebAssembly modules, so you get first-class extensibility with zero risk to compositor stability.
Write plugins in Rust (via the miracle-plugin crate) and hook into:
- Window placement logic β put windows exactly where you want them
- Input events β intercept keystrokes and pointer events before the compositor handles them
- Animations β trigger custom animations with arbitrary timing at any lifecycle event
- Workspace and output events β react to workspace creation, deletion, and switching
- Configuration β read and extend the compositor's config at runtime
Plugins hot-reload when the configuration reloads, so your iteration loop is fast.
Installation instructions, build instructions, and a full roadmap live at:
Plugin API documentation is at:
Questions, ideas, and contributions are welcome. Find us on Matrix:
