Writing a Wayland compositor is MUCH harder than it should be

This page summarizes the projects mentioned and recommended in the original post on /r/linux

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • wlstem

    I've tried to remedy this situation by creating a new library on top of wlroots, one that would be made by refactoring sway code to making most of its non-WM and non-sway specific code readily available. My attempt was called [wlstem][https://github.com/luamfb/wlstem]. I've spent a year or so refactoring sway code, only to come to a point that is far, **far** from where I wanted this library to be. For a few months now, I've been telling myself I should get back to work on wlstem, but I haven't, and quite frankly, I won't, because I know full well it might take two or three years to finally get all the features I wanted in wlstem. Not to mention wlstem is using an outdated version of wlroots, which would be even more outdated when I finally finished. And that's before I even wrote a single line of the compositor itself.

  • sway

    i3-compatible Wayland compositor

    Of course you need to write a lot of code to have a working compositor that integrates with input systems, clients, DRM/KMS subsystem, and libseat. You need a monstrous amount of code to even get a bootlable system - just take one look at the linux kernel. However, as you mentioned wlroots does slim that down quite a bit and new libraries and helpers and entering wlroots to slim that even more. Latest slimming effort for sway: https://github.com/swaywm/sway/pull/6844. However, to be frank, the size of sway is minuscule. Really only a couple thousand lines of code which in reality isn't all that much.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

  • smithay

    A smithy for rusty wayland compositors

    There is also smithay which is used by system76 for their new wayland compositor.

  • kwinft

    You might be interested in the KWinFT project I started few years ago which aims at providing such high-level libraries in the long run.

  • Hyprland

    Hyprland is a highly customizable dynamic tiling Wayland compositor that doesn't sacrifice on its looks.

    For example Hyprland has been developed for a few months only, it's based on wl-roots and commits are almost by one person.

  • arcan

    Arcan - [Display Server, Multimedia Framework, Game Engine] -> "Desktop Engine"

    Something like Arcan is already much more promising than Wayland. Using its segment implementation the compositor is able to dynamically simulate anything inbetween the Wayland and Xorg extremes of mechanism vs policy.

  • cagebreak

    Cagebreak: A Wayland Tiling Compositor Inspired by Ratpoison

    I also remembered cagebreak (wayland window manager). it uses cage (which is defined as a "wayland kiosk" but might also be used as a high level abstraction over wlroots).

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

  • cage

    A Wayland kiosk

    I also remembered cagebreak (wayland window manager). it uses cage (which is defined as a "wayland kiosk" but might also be used as a high level abstraction over wlroots).

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts