KWinFT, een vork van KWin gericht op Wayland, geïntroduceerd

Romeinse Gilg, deelnemen bij de ontwikkeling van KDE, Wayland, Xwayland en X Server, ingediend project KWinFT (KWin Fast Track), ontwikkeling van een flexibele en eenvoudig te gebruiken samengestelde vensterbeheerder voor Wayland en X11 op basis van de codebase Kwin. Naast de windowmanager ontwikkelt het project ook een bibliotheek wikkelland met de implementatie van een binding over libwayland voor Qt/C++, voortdurende ontwikkeling KWayland, maar bevrijd van binding aan Qt. De code wordt gedistribueerd onder GPLv2- en LGPLv2-licenties.

Het doel van het project is om KWin en KWayland te recyclen met behulp van
moderne technologieën en ontwikkelingspraktijken waarmee u de ontwikkeling van het project kunt versnellen, de code kunt refactoren, optimalisaties kunt toevoegen en de toevoeging van fundamentele innovaties kunt vereenvoudigen, waarvan de integratie in KWin in zijn huidige vorm moeilijk is. KWinFT en Wrapland kunnen worden gebruikt om KWin en KWayland naadloos te vervangen, maar ze worden niet beperkt door de KWin-lock-in van veel producten waarbij het behouden van volledige compatibiliteit een prioriteit is die innovatie tegenhoudt.

Met KWinFT hebben ontwikkelaars de vrije hand om te experimenteren met nieuwe functies, terwijl ze de stabiliteit behouden door het gebruik van modernere ontwikkelingstechnieken. Voor het controleren van de KWinFT-code wordt bijvoorbeeld gebruik gemaakt van een continu integratiesysteem, inclusief verificatie met behulp van verschillende linters, automatisch genereren van assemblages en uitgebreid testen. Wat de functionaliteitsontwikkeling betreft, zal de nadruk van KWinFT vooral liggen op het bieden van hoogwaardige en volledige protocolondersteuning
Wayland, inclusief het herwerken van architectonische kenmerken van KWin die de integratie met Wayland bemoeilijken.

Onder de experimentele innovaties die al aan KWinFT zijn toegevoegd, zijn:

  • Het compositieproces is herwerkt, waardoor de weergave van inhoud met X11 en Wayland aanzienlijk is verbeterd. Bovendien is er een timer toegevoegd om vertragingen tussen het maken van een afbeelding en de weergave ervan op het scherm te minimaliseren.
  • Een uitbreiding op het Wayland-protocol geïmplementeerd "kijker“, waardoor de client server-side scaling en trimmen van oppervlakteranden kan uitvoeren. Gecombineerd met de volgende grote release van XWayland zal de extensie de mogelijkheid bieden om veranderingen in de schermresolutie voor oudere games te emuleren.
  • Volledige ondersteuning voor het roteren en spiegelen van uitvoer voor Wayland-gebaseerde sessies.

Wrapland biedt een programmeerinterface in Qt-stijl die toegang biedt tot libwayland-functies in een vorm die gemakkelijk te gebruiken is in C++-projecten. Wrapland was oorspronkelijk gepland om te worden ontwikkeld als een afsplitsing van KWayland, maar vanwege de onbevredigende staat van de KWayland-code wordt het nu beschouwd als een project om KWayland volledig te herzien. Het belangrijkste verschil tussen Wrapland en KWayland is dat het niet langer gebonden is aan Qt en afzonderlijk gebruikt kan worden zonder Qt te installeren. In de toekomst kan Wrapland worden gebruikt als een universele bibliotheek met een C++ API, waardoor ontwikkelaars niet meer de libwayland C API hoeven te gebruiken.

Er worden kant-en-klare pakketten gemaakt voor Manjaro Linux-gebruikers. Om KWinFT te gebruiken, installeert u gewoon kwinft vanuit de repository, en om terug te keren naar de standaard-KWin installeert u het kwin-pakket. Het gebruik van Wrapland is niet beperkt tot KDE; er is bijvoorbeeld een clientimplementatie voorbereid voor gebruik in wlroots uitvoercontroleprotocol, waardoor samengestelde servers op basis van wlroots (Zwaaien, Wegvuur) gebruik KScreen om de uitvoer aan te passen.

In de tussentijd doorgaan projectupdates zullen worden gepubliceerd KWin-lage latentie, waarmee een editie van de samengestelde manager van KWin wordt gevormd met patches om de responsiviteit van de interface te vergroten en enkele problemen op te lossen die verband houden met de reactiesnelheid op gebruikersacties, zoals haperende invoer. Naast DRM VBlank ondersteunt KWin-lowlatency het gebruik van glXWaitVideoSync, glFinish of NVIDIA VSync om bescherming te bieden tegen tearing zonder de responsiviteit negatief te beïnvloeden (de oorspronkelijke tearing-bescherming van KWin is geïmplementeerd met behulp van een timer en kan leiden tot grote latenties (tot 50 ms) bij de uitvoer en, als gevolg daarvan, een vertraging in de respons bij invoer). Nieuwe versies van KWin-lowlatency kunnen worden gebruikt in plaats van de standaard samengestelde server in KDE Plasma 5.18.

Bron: opennet.ru

Voeg een reactie