Louvre is a C++ library for building Wayland compositors. It uses the Factory Method pattern to provide default implementations for all major functionality and protocols, which you can gradually override. This approach lets you see results from day one, potentially easing the learning curve while still giving you full control to create a unique, custom compositor.
Check the releases section for stable versions. The web documentation corresponds to the latest release.
- 📖 C++ API Documentation
- 🎓 Tutorial
- 🕹️ Examples
- 📦 Downloads
- ⚙️ Environment
- 💬 Contact
- 🌟 Projects Using Louvre
- 🎞️ Watch Video Demo
- Explicit Synchronization
- Fractional Scaling (with optional antialias)
- Direct Scanout (WIP)
- VSync Control
- Gamma Correction
- Screencasting (WIP)
- Hybrid-GPUs Support
- Multi-Session Support
- Double and Triple Buffering
- Persistent Clipboard
- Rootful XWayland (rootless mode is not supported, however, interesting projects such as Wayland Transpositor, Wayland Proxy Virtwl, and Xwayland Satellite can provide a rootless experience).
- Content Type Hint
- Cursor Shape
- DRM Lease
- DRM synchronization object
- Foreign Toplevel List
- Fractional Scale
- Idle Inhibit
- Idle Notify
- Image Capture Source
- Mesa Wayland DRM
- Linux DMA-Buf
- Lvr Background Blur
- Lvr Invisible Region
- Lvr SVG Path
- Pointer Constraints
- Pointer Gestures
- Presentation Time
- Relative Pointer
- Session Lock
- Single Pixel Buffer
- Tearing Control
- Viewporter
- Wayland
- Wlr Foreign Toplevel Management
- Wlr Gamma Control
- Wlr Layer Shell
- Wlr Output Management
- XDG Activation
- XDG Decoration
- XDG Output
- XDG Shell
- DRM/KMS
- Wayland
- Offscreen
- OpenGL
- Raster
- Vulkan (WIP)
