Roman Gilg, an der Entwicklung von KDE, Wayland, Xwayland und X Server, Projekt (KWin Fast Track) ist ein flexibler und benutzerfreundlicher Compositor-Window-Manager für Wayland und X11, der auf der Codebasis aufbaut. Neben dem Window-Manager entwickelt das Projekt auch die Bibliothek , die ein Binding für libwayland für Qt/C++ bereitstellt und die Entwicklung von vorantreibt, jedoch ohne die Bindung an Qt. Der Code wird unter den Lizenzen GPLv2 und LGPLv2 veröffentlicht.
Das Ziel des Projekts ist es, KWin und KWayland mithilfe
moderner Technologien und Entwicklungspraktiken neu zu gestalten, die eine schnellere Entwicklung des Projekts, eine Umstrukturierung des Codes, Optimierungen und die Vereinfachung der Integration grundlegender Neuerungen ermöglichen, deren Implementierung in KWin in ihrer aktuellen Form schwierig ist. KWinFT und Wrapland können als transparente Alternativen für KWin und KWayland verwendet werden, sind jedoch nicht durch die Einschränkungen gebunden, die KWin von vielen Produkten auferlegt werden, wobei die vollständige Kompatibilität mit diesen Priorität hat und den Fortschritt von Innovationen behindert.
Bei KWinFT haben die Entwickler die Freiheit, mit neuen Möglichkeiten zu experimentieren, während sie Stabilität durch den Einsatz moderner Entwicklungstechniken bewahren. Zum Beispiel kommt ein Continuous Integration-System zum Einsatz, das die Codeprüfungen mit verschiedenen Lintern, die automatische Erstellung von Builds und umfassende Tests umfasst. In Bezug auf die Weiterentwicklung der Funktionalität liegt der Schwerpunkt von KWinFT auf der Bereitstellung einer qualitativ hochwertigen und vollständigen Unterstützung des Protokolls
Wayland, einschließlich der Überarbeitung architektonischer Besonderheiten von KWin, die die Integration mit Wayland erschweren.
Zu den bereits in KWinFT hinzugefügten experimentellen Neuerungen zählen:
- Der Kompositing-Prozess wurde neu gestaltet, was die Anzeige von Inhalten unter X11 und Wayland erheblich verbessert hat. Zusätzlich wurde ein Timer hinzugefügt, um Verzögerungen zwischen der Erstellung eines Bildes und dessen Anzeige auf dem Bildschirm zu minimieren.
- Die Erweiterung des Wayland-Protokolls wurde implementiert „«, das es dem Kunden ermöglicht, Server-seitige Skalierungs- und Beschneidungsaktionen durchzuführen. Zusammen mit dem nächsten bedeutenden Release von XWayland wird das Erweiterung ermöglichen, die Bildschirmauflösung für ältere Spiele zu emulieren.
- Vollständige Unterstützung für die Drehung und Spiegelung des Outputs für Sitzungen, die auf Wayland basieren.
Wrapland bietet eine in Qt gestaltete Programmierschnittstelle, die Zugang zu den Funktionen von libwayland in einer benutzerfreundlichen Form für C++-Projekte ermöglicht. Ursprünglich sollte Wrapland als Fork von KWayland entwickelt werden, aber aufgrund des unzureichenden Codes von KWayland wird es nun als Projekt zur vollständigen Neugestaltung von KWayland betrachtet. Das wichtigste Unterscheidungsmerkmal von Wrapland im Vergleich zu KWayland ist die Abkehr von der Bindung an Qt und die Möglichkeit, es separat ohne eine Qt-Installation zu verwenden. In Zukunft wird Wrapland als universale Bibliothek mit einer C++-API genutzt werden können, die Entwicklern die Nutzung der C-API von libwayland erspart.
Fertige Pakete wurden für Benutzer von Manjaro Linux erstellt. Um KWinFT zu verwenden, reicht es aus, aus dem Repository kwinft zu installieren. Für die Rückkehr zu dem standardmäßigen KWin ist die Installation des Pakets kwin erforderlich. Die Nutzung von Wrapland beschränkt sich nicht auf KDE; beispielsweise wurde ein Client für den in verwendeten Ausgabeverwaltungsprotokoll entwickelt, der es in kompositorischen Servern auf Basis von wlroots (, ) ermöglicht, KScreen zur Konfiguration der Ausgabe zu verwenden.
In der Zwischenzeit Updates für das Projekt , die die Ausgabe des KWin-Kompositionsmanagers mit Patches zur Verbesserung der Benutzeroberflächenreaktionsfähigkeit und zur Behebung einiger Probleme im Zusammenhang mit der Reaktionsgeschwindigkeit, wie beispielsweise der Verzögerung bei der Eingabe, umfasst. Um Rissbildung bei der Ausgabe (tearing) zu verhindern, ohne die Reaktionsfähigkeit zu beeinträchtigen, unterstützt KWin-lowlatency zusätzlich zu DRM VBlank die Verwendung von glXWaitVideoSync, glFinish oder NVIDIA VSync. Der ursprünglich in KWin implementierte Rissschutz verwendet einen Timer und kann zu erheblichen Verzögerungen von bis zu 50 ms bei der Ausgabe führen, was wiederum die Reaktionszeit bei der Eingabe beeinträchtigt. Neue Versionen von KWin-lowlatency können anstelle des Standardkompositionsservers in KDE Plasma 5.18 verwendet werden.
Quelle: opennet.ru
