Wayland server libraries: wlroots, libweston, swc - Desktop Customization & Workflow

Users browsing this thread: 1 Guest(s)
When building a wayland compositor, a decision has to be made about which library (if any) to use as a foundation on top of which to implement the more unique features specific to the compositor. This is because the compositor is also responsible for basic functionality like managing input and output devices, functionality that is generally common between compositors (or, to be more precise, between compositors with the same intended use i.e. desktop, phone, etc).

To fill this role, some libraries have appeared over the years, such as (in C):
  • wlroots: This popular library is very modular, so you can pick and choose which parts you need. The library itself covers a huge array of use cases, so it is very flexible and has lots of utility, much of which would be ignored by a given compositor. It's use seems quite intuitive (see the minimal WM example: tinywl).
  • libweston: This library's design goals appear to be similar to wlroots', but their code is IMO somewhat less clear and accessible, if viewing it with an eye to use it to create a new compositor.
  • swc: This less well-known lib is aimed primarily at tiling WMs for the desktop, and as a result is relatively small and focussed. The API for creating compositors appears simple (though I haven't had a chance to read deeply into it).

Are there any more that I have missed?

Why might you choose one over another?

If you implement a wayland compositor or plan to, which did you choose and why?

Personally I will probably try out wlroots initially due to its accessibility (it has lots of examples) to first gain an understanding of wayland in general before moving to something smaller and more focussed for my own compositor.

Please let me know if any of the info here is incorrect -- wayland is relatively new to me. Have some wacky bonus videos:
- Wayfire: wrot, fisheye, invert and zoom plugins
- Qt 5 based 3D Wayland compositor

Messages In This Thread
Wayland server libraries: wlroots, libweston, swc - by mcol - 03-11-2020, 09:58 AM