Roman Gilg, involved in the development of KDE, Wayland, Xwayland and X Server, presented the KWinFT project (KWin Fast Track), which develops a flexible composite window manager and easy to use for Wayland and X11, based on the KWin code base.
Besides the window manager, the project also develops a wrapland library with the implementation of bindings over libwayland for Qt / C ++, which continues the development of KWayland, but is freed from binding to Qt.
The aim of the project is to rework KWin and KWayland using modern technologies and development practices that accelerate project development, refactor code, add optimizations, and simplify onboarding innovations fundamentals, which are difficult to integrate into KWin in its current form. KWinFT and Wrapland can be used to transparently replace KWin and KWayland, but are not limited to the framework imposed on KWin by many products, maintaining full compatibility with which is a priority that prevents advancement of innovations.
At KWinFT, heDevelopers are hands-free and can experiment with new features, seeking to maintain stability through the use of more modern development techniques.
For example, to verify the KWinFT code, a continuous integration system is involved, which includes verification using different linter, automatic assembly generation and advanced tests. Regarding the development of functionality, KWinFT's primary focus will be to provide high-quality and comprehensive support for the Wayland protocol, including reworking KWin's architectural features that complicate integration with Wayland.
Among the experimental innovations already added to KWinFT, the following stand out:
- The composition process was redesigned, which significantly improved the rendering of content under the control of X11 and Wayland. Additionally, a timer has been added to minimize delays between image creation and display.
- An extension of the Wayland "viewporter" protocol was implemented, which allows the client to perform actions to scale and trim the edges of the surface on the server side. In combination with the next major version of XWayland, the extension will allow you to emulate a change in screen resolution for older games.
- Full support for rotation and mirroring output for Wayland-based sessions.
- Wrapland provides a Qt-style programming interface that provides access to libwayland functions in a convenient way for use in C ++ projects. Initially, they planned to develop Wrapland as a fork of KWayland, but due to the unsatisfactory state of the KWayland code, it is now considered as a project for full KWayland processing. The most important difference between Wrapland and KWayland is the removal of binding to Qt and the ability to use it separately without installing Qt. In the future, Wrapland can be used as a universal library with a C ++ API, eliminating the need for developers to use the C libwayland API.
- The ready-to-use packages are made for Manjaro Linux users. To enable KWinFT, simply install kwinft from the repository, and to return to normal KWin, install the kwin package. The use of Wrapland is not limited to KDE, for example, a client implementation has been prepared for the output control protocol used in wlroots, which allows using KScreen to configure output on composite wlroots-based servers (Sway, Wayfire).
Meanwhile low latency KWin project updates continue to be released, which forms the editorial board of the KWin composite administrator with patches to increase the responsiveness of the interface and fix some issues related to the speed of response to user actions, such as input braking.
Finally, for those who are interested in knowing more about it or reviewing the KwinFT code, they can contact to the following link, where you will also find information about its installation.
The code is distributed under the GPLv2 and LGPLv2 licenses.