wlroots

From Gentoo Wiki
Jump to:navigation Jump to:search
This article is a stub. Please help out by expanding it - how to get started.

wlroots is a library providing pluggable, composable, unopinionated modules for building a Wayland compositor. As described by the project README:

  • wlroots provides backends that abstract the underlying display and input hardware, including KMS/DRM, libinput, Wayland, X11, and headless backends, plus any custom backends you choose to write, which can all be created or destroyed at runtime and used in concert with each other.
  • wlroots provides 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.
  • wlroots provides several powerful, standalone, and optional tools that implement components common to many compositors, such as the arrangement of outputs in physical space.
  • wlroots provides an 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.
  • wlroots provides 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.

The Wayland protocols currently supported by wlroots can be found in the types directory of the wlroots repository.

Installation

USE flags

USE flags for gui-libs/wlroots Pluggable, composable, unopinionated modules for building a Wayland compositor

+drm Enable Direct Rendering Management
+libinput Enable support for input devices via dev-libs/libinput
+session Enable session support (is required for DRM and libinput)
X Enable support for X11 applications (XWayland)
lcms Add lcms support (color management engine)
liftoff Enable support for libliftoff KMS plane backend
vulkan Add support for 3D graphics and computing via the Vulkan cross-platform API
x11-backend Enable support for handling input/output devices through x11-libs/libxcb
xcb-errors Better error reporting when using xwayland

Emerge

Normally wlroots does not need to be installed manually; it should be pulled in as a dependency when installing a wlroots-based compositor.

Usage

Wayland compositors currently based on wlroots include:

Name Package Type Description
Cage gui-wm/cage::guru Kiosk [Beta] Kiosk based compositor for displaying a single fullscreen application (in GURU overlay)
Cagebreak gui-wm/cagebreak::wayland-desktop Tiling [Beta] Tiling compositor inspired by RatPoison (in wayland-desktop overlay)
DWL gui-wm/dwl Tiling [Unstable] DWM clone
Kiwmi gui-wm/kiwmi::wayland-desktop Stacking [Unstable] Fully programmable compositor configurable with Lua (in wayland-desktop overlay)
Labwc gui-wm/labwc::wayland-desktop Stacking [Unstable] OpenBox clone (in wayland-desktop overlay)
River gui-wm/river::wayland-desktop Tiling [Unstable] Dynamic tiling compositor, inspired by DWM and bspwm (in wayland-desktop overlay)
Sway gui-wm/sway Tiling x11-wm/i3 clone
Waybox gui-wm/waybox::wayland-desktop Stacking [Unstable] OpenBox clone (in wayland-desktop overlay)
Wayfire gui-wm/wayfire Stacking Beautiful, eye candy compositor inspired by Compiz
Woodland gui-wm/woodland Stacking A Wayland window-stacking compositor.

See also

  • Labwc - The Labwc compositor
  • River - The River compositor
  • Sway - The Sway compositor
  • Wayfire - The Wayfire compositor

External resources

  • Architecture - A high-level overview of the wlroots design
  • Introduction to wlroots - An introductory tutorial about using the wlroots library
  • tinywl - A "minimum viable product" Wayland compositor based on wlroots