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

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.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  • 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.

    InfluxDB logo
  • 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).

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
  • 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

  • Wayland breaks your bad software

    2 projects | news.ycombinator.com | 30 Mar 2024
  • Improving cursor rendering on Wayland

    4 projects | news.ycombinator.com | 15 Mar 2024
  • RubyWM – an X11 window manager in pure Ruby

    5 projects | news.ycombinator.com | 22 Jan 2024
  • Hyprland broken config file :c

    2 projects | /r/hyprland | 10 Dec 2023
  • Is there any transparent themes for GTK 2 or QT?

    1 project | /r/archlinux | 10 Dec 2023