:PROPERTIES:
:ID:       4cddd97d-9efc-4182-9e1b-a1ce6e06ab96
:END:
#+title: Wayland
#+date: 2021-07-20 16:42:09 +08:00
#+date_modified: 2021-07-20 20:31:56 +08:00
#+language: en


[[https://wayland.freedesktop.org/][The next iteration to X]], the traditional Unix display server.
Wayland, similar to X, is an entirely new protocol leaving to other tools to implement desktop systems.
Thus, it needs a new ecosystem of programs to run inside of a Wayland-based desktop sessions.




* Ecosystem

- [[https://gitlab.freedesktop.org/wayland/wayland][A Wayland core library]].
- [[https://github.com/swaywm/sway/][Sway]] is a compositor and a window manager serving as a drop-in replacement for i3.
- [[https://github.com/swaywm/wlroots][wlroots]] is an unopinionated modular compositor library.
- [[https://wayland-book.com/][Wayland book]] is a free book showing the basic ropes of working with Wayland-based systems.
- [[https://wayland.freedesktop.org/xserver.html][XWayland]] is an implementation of X display server to accept Wayland input.
- [[https://github.com/emersion/xdg-desktop-portal-wlr][xdg-desktop-portal-wlr]] is a portal backend for wlroots.
- GNOME Shell and KDE Plasma is slowly supporting Wayland.




* Application support

While Wayland support for various legacy systems are increasing recently, one still have to be cautious with support.

- Several [[https://wayland.freedesktop.org/toolkits.html][graphical toolkits]] support Wayland.
- Starting at version 27, [[https://obsproject.com/][OBS Studio]] supports Wayland-based systems.
- [[https://hg.sr.ht/~scoopta/wlrobs][wlrobs]] is a OBS Studio plugin supporting wlroots-based compositors.
- [[https://github.com/emersion/grim][Grim]] is a command-line tool for getting screenshots.
- [[https://github.com/ammen99/wf-recorder][wf-recorder]] for recording with wlroots-based compositors.
- [[https://github.com/emersion/xdg-desktop-portal-wlr/wiki/Screencast-Compatibility][WebRTC is supported for most browsers]].
