2023-02-14 02:57:15 +08:00
|
|
|
# Wayland
|
2010-09-15 00:41:26 +08:00
|
|
|
|
|
|
|
Wayland is a project to define a protocol for a compositor to talk to
|
|
|
|
its clients as well as a library implementation of the protocol. The
|
|
|
|
compositor can be a standalone display server running on Linux kernel
|
2013-02-14 13:29:15 +08:00
|
|
|
modesetting and evdev input devices, an X application, or a wayland
|
2010-11-09 14:31:30 +08:00
|
|
|
client itself. The clients can be traditional applications, X servers
|
2010-09-15 00:41:26 +08:00
|
|
|
(rootless or fullscreen) or other display servers.
|
|
|
|
|
|
|
|
The wayland protocol is essentially only about input handling and
|
|
|
|
buffer management. The compositor receives input events and forwards
|
|
|
|
them to the relevant client. The clients creates buffers and renders
|
|
|
|
into them and notifies the compositor when it needs to redraw. The
|
|
|
|
protocol also handles drag and drop, selections, window management and
|
2012-05-23 14:08:08 +08:00
|
|
|
other interactions that must go through the compositor. However, the
|
2010-09-15 00:41:26 +08:00
|
|
|
protocol does not handle rendering, which is one of the features that
|
|
|
|
makes wayland so simple. All clients are expected to handle rendering
|
|
|
|
themselves, typically through cairo or OpenGL.
|
|
|
|
|
2012-07-21 00:20:15 +08:00
|
|
|
Building the wayland libraries is fairly simple, aside from libffi,
|
|
|
|
they don't have many dependencies:
|
|
|
|
|
2018-06-09 07:49:33 +08:00
|
|
|
$ git clone https://gitlab.freedesktop.org/wayland/wayland
|
2012-07-21 00:20:15 +08:00
|
|
|
$ cd wayland
|
2020-04-08 01:06:19 +08:00
|
|
|
$ meson build/ --prefix=PREFIX
|
|
|
|
$ ninja -C build/ install
|
2012-07-21 00:20:15 +08:00
|
|
|
|
2023-02-14 02:55:42 +08:00
|
|
|
where PREFIX is where you want to install the libraries.
|
|
|
|
|
|
|
|
See https://wayland.freedesktop.org for documentation.
|