Roman Gilg, i utvecklingen av KDE, Wayland, Xwayland och X Server, projektet (KWin Fast Track), som utvecklar en flexibel och anvÀndarvÀnlig kompositfönsterhanterare för Wayland och X11, baserad pÄ koden frÄn Förutom fönsterhanteraren utvecklar projektet ocksÄ biblioteket med en implementation av ett grÀnssnitt över libwayland för Qt/C++, som fortsÀtter utvecklingen av men utan bindning till Qt. Koden distribueras under GPLv2 och LGPLv2.
Projektets mÄl Àr att Äterskapa KWin och KWayland med hjÀlp av
moderna teknologier och utvecklingspraxis, som möjliggör en snabbare utveckling av projektet, refaktorisera koden, lÀgga till optimeringar och förenkla tillÀgget av grundlÀggande innovationer, vars integration i KWin i nuvarande form Àr komplicerad. KWinFT och Wrapland kan anvÀndas som en transparent ersÀttning för KWin och KWayland, men de Àr inte begrÀnsade till de ramar som KWin:s bindningar till mÄnga produkter innebÀr, dÀr bibehÄllen fullstÀndig kompatibilitet Àr en prioritet och hÀmmar framdriften av innovationer.
I KWinFT har utvecklarna frihet att experimentera med nya funktioner, samtidigt som de upprÀtthÄller stabilitet genom att anvÀnda mer moderna utvecklingstekniker. Till exempel, för att verifiera koden anvÀnds ett system för kontinuerlig integration, som inkluderar kontroller med olika linters, automatisk byggande och omfattande testning. NÀr det gÀller utvecklingen av funktionaliteten kommer KWinFT frÀmst att fokusera pÄ att sÀkerstÀlla kvalitet och fullstÀndigt stöd för protokollet
Wayland, inklusive en översyn av KWin:s arkitektur, vilket komplicerar integrationen med Wayland.
Bland de redan tillagda experimentella innovationerna i KWinFT mÀrks:
- Processen för komposition har omarbetats, vilket har lett till en betydande förbÀttring av rendering av innehÄll under X11 och Wayland. Ytterligare har en timer lagts till för att minimera fördröjningarna mellan skapandet av en bild och dess visning pÄ skÀrmen.
- Utvidgningen av Wayland-protokollet «« har implementerats, vilket gör att klienten kan göra ÄtgÀrder för att zooma in och beskÀra kanterna av ytan pÄ serversidan. I kombination med den nÀsta betydande versionen av XWayland kommer denna utvidgning att möjliggöra emulering av Àndringar i skÀrmupplösningen för gamla spel.
- Full support for rotation and mirroring output for Wayland-based sessions.
Wrapland provides a Qt-style designed API that offers access to libwayland functions in a user-friendly way for C++ projects. Initially, Wrapland was planned to be developed as a fork of KWayland, but due to the unsatisfactory state of KWayland's code, it is now seen as a complete overhaul of KWayland. The most important difference between Wrapland and KWayland is the removal of the Qt dependency, allowing for separate usage without installing Qt. In the future, Wrapland will serve as a universal library with a C++ API, freeing developers from the need to use the C API of libwayland.
Pre-built packages are available for Manjaro Linux users. To use KWinFT, simply install from the kwinft repository, while to revert back to the standard KWin, the kwin package should be installed. The use of Wrapland is not limited to KDE; for example, a client implementation has been prepared for use in the output management protocol, allowing the use of KScreen for output configuration on composite servers based on wlroots (, ).
Meanwhile, updates for the project will be published , which forms an edition of the KWin composite manager with patches aimed at increasing interface responsiveness and addressing some issues related to user action response times, such as input lag. To provide protection against tearing during output without negatively affecting responsiveness, KWin-lowlatency supports the use of glXWaitVideoSync, glFinish, or NVIDIA VSync in addition to DRM VBlank (the original tearing protection in KWin was implemented using a timer and can lead to substantial output delays (up to 50ms), resulting in input lag). New releases of KWin-lowlatency can be used instead of the standard composite server in KDE Plasma 5.18.
KĂ€lla: opennet.ru
