Brussels / 3 & 4 February 2018


Wayland client basics

How to natively speak Wayland in your application, from the bottom up

Wayland, the next-generation display server protocol, is slowly but surely taking over the Linux desktop. Preexisting and new applications will have to adapt to this new environment that is fundamentally different from how things used to work on X11 for a long time. This talk gives you the basics of programming native Wayland clients in 2018: the Wayland architecture and protocol world including recent developments, what you can and cannot do, the steps to get something visible on the screen, and why you might not want to do a native application after all.

The presentation is intended to give a conceptual overview of things that any Wayland client programmer will have to look at. The architecture and design of Wayland will be shown and compared to X11. However, rather than porting applications from X11 to Wayland, the focus here will be on building native Wayland programs from the ground up. The Wayland ecosystem and relevant compositors will be described and suggestions for testing will be given. Furthermore, the process of getting a surface to the compositor for drawing it on the screen will be explained and all basic protocols needed for this such as the global registry, shared memory, surfaces, and shell surfaces including xdgwmbase will be introduced.

The talk will not go too deeply into programming specifics and the libwayland C API, but some common pitfalls and best practices will be mentioned.


Philipp Kerling