KWinFT, ein Fork von KWin, ist vorgestellt worden, der sich auf Wayland konzentriert

Roman Gilg, der beteiligt ist an der Entwicklung von KDE, Wayland, Xwayland und X Server, vor Projekt KWinFT (KWin Fast Track), entwickelt einen flexiblen und benutzerfreundlichen Kompositionsfenster-Manager fĂŒr Wayland und X11, basierend auf dem Code von KWin. Neben dem Fenster-Manager entwickelt das Projekt auch die Bibliothek wrapland mit einer Implementierung der Wrapper ĂŒber libwayland fĂŒr Qt/C++, die die Entwicklung von KWayland, jedoch ohne Bindung an Qt, fortsetzt. Der Code wird unter den Lizenzen GPLv2 und LGPLv2 verbreitet.

Das Ziel des Projekts ist es, KWin und KWayland mithilfe
moderner Technologien und Entwicklungspraktiken zu ĂŒberarbeiten, die eine schnellere Entwicklung des Projekts ermöglichen, den Code zu refaktorisieren, Optimierungen hinzuzufĂŒgen und die EinfĂŒhrung grundlegender Neuerungen zu erleichtern, deren Integration in KWin in der aktuellen Form schwierig ist. KWinFT und Wrapland können als transparente Alternativen zu KWin und KWayland verwendet werden, sind jedoch nicht durch die EinschrĂ€nkungen gebunden, die die Bindung von KWin fĂŒr viele Produkte mit sich bringt, wobei die vollstĂ€ndige KompatibilitĂ€t PrioritĂ€t hat, was die EinfĂŒhrung von Neuerungen behindert.

In KWinFT haben die Entwickler die Freiheit, mit neuen Funktionen zu experimentieren, wobei die StabilitĂ€t durch den Einsatz moderner Entwicklungstechniken gewahrt wird. Zum Beispiel wird fĂŒr die PrĂŒfung des KWinFT-Codes ein kontinuierliches Integrationssystem verwendet, das ÜberprĂŒfungen mit verschiedenen Lintern, automatisierte Build-Erstellungen und umfassende Tests umfasst. Was die Weiterentwicklung der FunktionalitĂ€t betrifft, wird der Schwerpunkt in KWinFT auf einer qualitativ hochwertigen und umfassenden UnterstĂŒtzung des Protokolls
Wayland liegen, einschließlich der Überarbeitung architektonischer Merkmale von KWin, die die Integration mit Wayland erschweren.

Zu den bereits in KWinFT hinzugefĂŒgten experimentellen Neuerungen gehören:

  • Der Kompositionsprozess wurde ĂŒberarbeitet, was zu einer signifikanten Verbesserung der Darstellung von Inhalten unter X11 und Wayland gefĂŒhrt hat. ZusĂ€tzlich wurde ein Timer hinzugefĂŒgt, um Verzögerungen zwischen der Erstellung des Bildes und dessen Anzeige auf dem Bildschirm zu minimieren.
  • Die Erweiterung des Wayland-Protokolls „viewporter“ wurde umgesetzt, die es dem Client ermöglicht, Aktionen zur Skalierung und Zuschneidung von OberflĂ€chenkanten auf der Serverseite durchzufĂŒhren. In Kombination mit dem nĂ€chsten signifikanten Release von XWayland wird die Erweiterung es ermöglichen, die Bildschirmauflösung fĂŒr Ă€ltere Spiele zu emulieren.
  • VollstĂ€ndige UnterstĂŒtzung fĂŒr Drehung und Spiegelung der Ausgabe fĂŒr Sitzungen basierend auf Wayland.

Wrapland bietet eine in Qt gestaltete Programmierschnittstelle, die den Zugriff auf die Funktionen von libwayland in einer benutzerfreundlichen Form fĂŒr C++-Projekte ermöglicht. UrsprĂŒnglich plante Wrapland, als Fork von KWayland entwickelt zu werden, jedoch wird es nun aufgrund des unzureichenden Zustands des KWayland-Codes als Projekt zur vollstĂ€ndigen Überarbeitung von KWayland betrachtet. Das wichtigste Unterscheidungsmerkmal von Wrapland gegenĂŒber KWayland ist die Befreiung von der Bindung an Qt und die Möglichkeit, es unabhĂ€ngig ohne Installation von Qt zu verwenden. In Zukunft könnte Wrapland als universelle Bibliothek mit einer C++-API verwendet werden, die Entwickler von der Notwendigkeit befreit, die C-API von libwayland zu verwenden.

Fertige Pakete wurden fĂŒr Benutzer von Manjaro Linux erstellt. Um KWinFT zu verwenden, mĂŒssen Sie einfach aus dem Repository kwinft installieren, und um zum Standard-KWin zurĂŒckzukehren, installieren Sie das Paket kwin. Die Verwendung von Wrapland ist nicht auf KDE beschrĂ€nkt; beispielsweise wurde eine Client-Implementierung fĂŒr das in wlroots verwendete Ausgabensteuerungsprotokoll vorbereitet, die KScreen in zusammengesetzten Servern auf Basis von wlroots (Sway, Wayfire) zur Konfiguration der Ausgabe verwendet.

In der Zwischenzeit werden weiterhin werden Updates des Projekts KWin-lowlatency, das eine Edition des KWin-Kompositormanagers mit Patches zur Erhöhung der ReaktionsfĂ€higkeit der BenutzeroberflĂ€che und zur Behebung einiger Probleme im Zusammenhang mit der Reaktionsgeschwindigkeit auf Benutzeraktionen, wie z.B. Verzögerung bei der Eingabe, erstellt. Um einen Tearing-Schutz zu bieten, ohne die ReaktionsfĂ€higkeit zu beeintrĂ€chtigen, unterstĂŒtzt KWin-lowlatency neben DRM VBlank die Verwendung von glXWaitVideoSync, glFinish oder NVIDIA VSync (der ursprĂŒnglich in KWin implementierte Tearing-Schutz verwendet einen Timer und kann zu erheblichen Verzögerungen (bis zu 50 ms) der Ausgabe fĂŒhren und somit die Reaktionszeit bei der Eingabe verzögern). Neue Versionen von KWin-lowlatency können anstelle des Standard-Kompositormanagers in KDE Plasma 5.18 verwendet werden.

Quelle: opennet.ru

60GB SSD 8Gb DDR4