Martin Gräßlin - KWin went XCB

Over the last two years KWin and other components of the Plasma workspace and the KDE Frameworks were ported from XLib to XCB. This transition was triggered by the fact that Qt 5 uses XCB for the event handling. Thus all code processing XLib events had to be ported to be usable with Qt 5.

This talk will explain why we did a complete transition to XCB in KWin and the state of the porting. The talk will highlight the issues we hit during the porting and also what we really liked about XCB in comparison to XLib.

As a C++ application using a low level C library is not particularly thrilling to the developers especially as it can be error-prone. The KWin development team went a long way to make using XCB inside the code base as convenient as possible and safe using advanced features of C++ like RAII and variadic templates. The talk will explain why we introduced wrappers for XCB and illustrates the advantages from a coding point of view. As these wrappers do not dependent on other parts of KWin and are mostly template based header only implementations they might be of interest for other C++ projects interacting with XCB.

Slides (CC-BY-SA) Video