Roman Gilg, in the development of KDE, Wayland, Xwayland, and X Server, projekt (KWin Fast Track), developing a flexible and easy-to-use composite window manager for Wayland and X11, based on the codebase of In addition to the window manager, the project also develops the library which implements a wrapper over libwayland for Qt/C++, continuing the development of but free from the binding to Qt. The code is distributed under the GPLv2 and LGPLv2 licenses.
The goal of the project is to redesign KWin and KWayland using
modern technologies and development practices that allow accelerating the project's evolution, refactoring the code, adding optimizations, and simplifying the introduction of fundamental innovations, the integration of which into KWin in its current form is challenging. KWinFT and Wrapland can be used to transparently replace KWin and KWayland, but they are not limited by the constraints imposed by the binding of KWin in many products, the compatibility of which is a priority that hinders the advancement of innovations.
In KWinFT, developers have the freedom to experiment with new features while maintaining stability through the application of more modern development techniques. For instance, a continuous integration system is employed to verify the KWinFT code, including checks with various linters, automatic build generation, and extensive testing. Regarding the development of functionality, KWinFT will primarily focus on ensuring quality and full support for the
Wayland protocol, including a redesign of KWin's architectural features that complicate integration with Wayland.
Among the experimental innovations already added to KWinFT are:
- The compositing process has been reworked, significantly improving content rendering under X11 and Wayland. Additionally, a timer has been added to minimize latency between image creation and its display on the screen.
- The Wayland protocol extension "", allows the client to perform scaling and edge cropping operations on the server side. Combined with the next significant release of XWayland, this extension will enable emulation of screen resolution changes for older games.
- Pajisja e plotë për rotacionin dhe reflektimin e daljes për seancat e bazuara në Wayland.
Wrapland ofron një ndërfaqe programimi të dizajnuar në stilin Qt, duke siguruar qasje në funksionalitetet e libwayland në një formë të përdorshme për projekte në C++. Fillimisht, Wrapland planifikohej të zhvillohej si një fork i KWayland, por për shkak të gjendjes së pavolitshme të kodit të KWayland, tani shqyrtohet si një projekt për rinovimin e plotë të KWayland. Dallimi më i rëndësishëm i Wrapland nga KWayland është heqja e varësisë nga Qt dhe mundësia e përdorimit të tij si një bibliotekë e pavarur pa instaluar Qt. Në të ardhmen, Wrapland do të përdoret si një bibliotekë universale me një API në C++, duke liruar zhvilluesit nga nevoja për të përdorur API-në C të libwayland.
Pakot e gatshme janë formuar për përdoruesit e Manjaro Linux. Për të aktivizuar KWinFT, mjafton të instaloni nga repositori kwinft, ndërsa për të rikthyer në KWin standard do të duhet të instaloni paketën kwin. Përdorimi i Wrapland nuk kufizohet në KDE; për shembull, është përgatitur një implementim i klientit për përdorimin në protokollin e menaxhimit të daljes, që lejon në serverët kompozitë të bazuar në wlroots (, ) të përdorin KScreen për konfigurimin e daljes.
Ndërkohë, të publikohen përditësime të projekti , që formon një redaktim të menaxhuesit të kompozitëve KWin me patches për të rritur reagimin e ndërfaqes dhe për të zgjidhur disa probleme të lidhura me shpejtësinë e reagimit ndaj veprimeve të përdoruesit, si ngadalësimi i input-it. Për të siguruar mbrojtje nga shfaqja e shqyerjeve gjatë daljes (tearing) pa ndikuar negativisht në reagimin përveç DRM VBlank, KWin-lowlatency mbështet përdorimin e glXWaitVideoSync, glFinish ose NVIDIA VSync (mbrojtja fillestare nga shqyerjet në KWin është realizuar me përdorimin e një timer-i dhe mund të shkaktojë vonesa të mëdha (deri në 50ms) gjatë daljes dhe si pasojë, vonesa në reagimin ndaj input-it). Lëshimet e reja të KWin-lowlatency mund të përdoren si zëvendësues për serverin kompozit standard në KDE Plasma 5.18.
Burimi: opennet.ru
