Pluggable, composable, unopinionated modules for building a Wayland compositor
wlroots provides back-ends that abstract the underlying display and input hardware, including KMS/DRM, libinput, Wayland, X11, and headless back-ends, plus any custom back-ends you choose to write, which can all be created or destroyed at runtime and used in concert with each other.
wlroots implements a huge variety of Wayland compositor features and implements them right, so you can focus on the features that make your compositor unique. By using wlroots, you get high performance, excellent hardware compatibility, broad support for many wayland interfaces, and comfortable development tools - or any subset of these features you like, because all of them work independently of one another and freely compose with anything you want to implement yourself.
- Unopinionated, mostly standalone implementations of many Wayland interfaces, both from wayland.xml and various protocol extensions. We also promote the standardization of portable extensions across many compositors.
- Several powerful, standalone, and optional tools that implement components common to many compositors, such as the arrangement of outputs in physical space.
- Xwayland abstraction that allows you to have excellent Xwayland support without worrying about writing your own X11 window manager on top of writing your compositor.
- A renderer abstraction that simple compositors can use to avoid writing GL code directly, but which steps out of the way when your needs demand custom rendering code.
- IRC general channel
18 March 2022
Leaders and contributors
Resources and communication
|Weak prerequisite||libxcb-errors (for X11 support)|
|Required to build||xwayland (for X11 support)|
|Required to build||libseat|
|Required to build||xkbcommon|
|Required to build||wayland|
|Weak prerequisite||EGL and GLESv2 (for the GLES2 renderer)|
|Required to build||udev|
|Required to build||gbm|
|Required to build||meson|
|Required to build||pixman|
|Required to build||libdrm|
|Required to build||libxcb (for X11 support)|
|Required to build||libxcb-render-util (for X11 support)|
|Required to build||[libxcb-wm]] (for X11 support)|
|Weak prerequisite||vulkan and glslang (for the vulkan renderer)|
|Required to build||wayland-protocols|
This entry (in part or in whole) was last reviewed on 18 March 2022.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the page “GNU Free Documentation License”.
The copyright and license notices on this page only apply to the text on this page. Any software or copyright-licenses or other similar notices described in this text has its own copyright notice and license, which can usually be found in the distribution or license text itself.