Skip to content

miracle-wm-org/miracle-wm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

793 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Website ย  Join Matrix

miracle-wm

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.

miracle in action

Features

  • 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

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.

Getting Started

Installation instructions, build instructions, and a full roadmap live at:

wiki.miracle-wm.org

Plugin API documentation is at:

docs.miracle-wm.org

Community

Questions, ideas, and contributions are welcome. Find us on Matrix:

#miracle-wm:matrix.org