Wayland

The role of the wayland compositor is to dispatch input events to the appropriate wayland client.

The process of bringing together all of the application windows for display on an output is called compositing

Kernel Components

  • DRM - Direct rendering manager
    • KMS - Kernel Mode Setting

User Space

  • libdrm - for drm interactions
  • mesa - provides vendor optimized implementations of opengl and the GBM (generic buffer management)
  • libinput - provides the userspace end of evdev. receives input events from kernel from input devices, decoding them , and passes them on to the Wayland compositor. The Wayland compositor requires special permissions to use the evdev files, forcing Wayland clients to go through the compositor to receive input events — which, for example, prevents keylogging.
  • (e)udev
  • xkbcommon
  • pixman - used for efficient manipulation of pixels
  • libwayland

Good Wayland Compositor implementations

  • sway
  • labwc
  • niri
  • river
  • hyprland