Nach achtmonatiger Entwicklung wurde die stabile Version des Protokolls, des Mechanismus zur Interprozesskommunikation und der Wayland-Bibliotheken 1.25 veröffentlicht. Der Branch 1.25 ist auf API- und ABI-Ebene rückwärtskompatibel mit den Versionen 1.x und enthält hauptsächlich Fehlerkorrekturen sowie geringfügige Protokoll-Updates. Die Ergebnisse des Projekts werden unter der MIT-Lizenz verbreitet. Der Referenzkompositserver Weston, der Code und Arbeitsbeispiele für die Nutzung von Wayland in Desktop-Umgebungen und eingebetteten Lösungen bereitstellt, entwickelt sich im Rahmen eines separaten Entwicklungszyklus.
Hauptänderungen im Protokoll:
- Die Dokumentation wurde vom DocBook-Format in mdBook (Markdown) konvertiert.
- Der Wayland XML-Dialekt, das Modell zur Aktualisierung von Inhalten und die Farbverwaltungsoptionen sind vollständig dokumentiert.
- Ein neues Attribut "frozen" für Schnittstellen mit mehreren übergeordneten Schnittstellen wurde hinzugefügt.
- Eine neue Anfrage wl_surface.get_release wurde hinzugefügt, um eine Benachrichtigung über die Freigabe des vom Client über wl_surface.attach angefügten Puffers zu erhalten. Im Gegensatz zu wl_buffer.release ist die Benachrichtigung in wl_surface.get_release an einen bestimmten Zeitpunkt des Renderings gebunden.
- Die Funktion wl_display_dispatch_pending_single() wurde hinzugefügt, die es ermöglicht, eine Ereigniswarteschlange zu durchlaufen und nur ein Ereignis zu verarbeiten, anstatt alle angesammelten Ereignisse, wie es bei wl_display_dispatch_pending() der Fall ist.
- Die farbliche Hervorhebung der Debug-Ausgabe WAYLAND_DEBUG wurde sichergestellt.
Zusätzliche Protok-Erweiterungen, die seit der Veröffentlichung von Wayland 1.25 hinzugefügt wurden, um das Basisprotokoll ergänzen und in einem separaten Set von Wayland-Protocols bereitgestellt werden:
- xx-input-method — ermöglicht es Anwendungen, Text-Eingabemethoden für Komposite zu implementieren. Server und den eingegebenen Text zu generieren, was beispielsweise für die Erstellung virtueller Tastaturen und IME-Module (Input Method Editor) zur Verarbeitung der Eingabe verwendet werden kann.
- xx-text-input — ermöglicht es Komposit-Servern, Eingabemethoden zu implementieren und Text an Anwendungen zu senden. Das Protokoll standardisiert die Interaktion zwischen Kompositen Server und Anwendungen und ermöglicht die Steuerung solcher Funktionen wie die Übertragung eingegebenen Textes, die Verarbeitung von Fokusänderungsereignissen und die Berücksichtigung der Eigenheiten von Eingabefeldern (Sprache, Textauswahl, Inhaltstyp).
- Die Protokolle color-management-v1 und color-representation-v1 wurden überarbeitet, um Funktionen für das Farbmanagement, die Unterstützung von HDR und die Bestimmung der Farbdarstellung von Wayland-Oberflächen bereitzustellen.
Die bemerkenswertesten Ereignisse im Zusammenhang mit Wayland, die seit der Veröffentlichung der letzten Ausgabe stattgefunden haben:
- In GNOME 50 wurde die Unterstützung für X11 entfernt. In KDE Plasma 6.8 wurde beschlossen, die Unterstützung für X11 einzustellen.
- JetBrains setzt IDE IntelliJ standardmäßig auf Wayland um.
- Xfce hat den Kompositserver Xfwl4 angekündigt, der Wayland verwendet.
- Die Desktop-Umgebung Budgie 10.10 wurde auf Wayland umgestellt.
- QNX Developer Desktop auf Basis von Wayland.
- Marathon OS — ein mobiles Betriebssystem basierend auf Wayland.
- Veröffentlichung von Wayback, einer Schicht zum Betrieb von X11-Desktopumgebungen unter Verwendung von Wayland-Komponenten.
- In Cinnamon wurde die optionale Möglichkeit zur Installation von Sitzungdateien für Wayland hinzugefügt, sowie die Möglichkeit, das Tastaturlayout beim Einsatz von Wayland zu wechseln.
- Im Wine-Treiber wurde die Unterstützung für die Zwischenablage, Eingabemethoden, unregelmäßige Fenster und Transparenz in Wayland-basierten Umgebungen implementiert.
- In Cairo-Dock wurde die Unterstützung für Wayland hinzugefügt.
- Aktualisierung der Kompositionsserver: Weston 15.0, River 0.4.0, Hyprland 0.54, labwc 0.9.4, Niri 25.11, miracle-wm 0.8, Wayfire 0.10, wlmaker 0.6, labwc 0.9.0.
Wir erinnern daran, dass Wayland ein Protokoll zur Interaktion mit Kompositions- Server und damit verbundenen Anwendungen ist. Die Clients führen die Darstellung ihrer Fenster selbst in einem separaten Puffer aus und übermitteln Informationen über Aktualisierungen an das Kompositions- zu einem Server, der den Inhalt der Puffer einzelner Anwendungen kombiniert, um eine endgültige Ausgabe unter Berücksichtigung möglicher Nuancen wie Überlappung von Fenstern und Transparenz zu erstellen. Mit anderen Worten, der Kompositserver bietet keine API zum Zeichnen einzelner Elemente, sondern arbeitet nur mit bereits formatierten Fenstern, was die doppelte Pufferung bei der Verwendung von hochgradigen Bibliotheken wie GTK und Qt überflüssig macht, die die Formatierung des Fensterinhalts übernehmen.
Wayland löst viele Sicherheitsprobleme von X11, da es im Gegensatz zu Letzterem Eingaben und Ausgaben für jedes Fenster isoliert; es erlaubt einem Client nicht, auf den Inhalt der Fenster anderer Clients zuzugreifen, und verhindert auch das Abfangen von mit anderen Fenstern verbundenen Eingabeereignissen. Die Unterstützung für die direkte Arbeit mit Wayland ist für die meisten in Linux verwendeten Grafikbibliotheken implementiert, einschließlich GTK, Qt, SDL, FLTK, wxWidgets, Clutter und EFL (Enlightenment Foundation Library).
Die Interaktion mit der Hardware in Wayland/Weston, wie z.B. die Durchführung von Initialisierungen, das Umschalten von Video-Modi (drm modesetting) und das Speichermanagement (GEM für i915 und TTM für radeon und nouveau) von Grafikkarten, kann direkt über ein Modul, das auf Kernel-Ebene arbeitet, erfolgen, was es ermöglicht, ohne Superuser-Rechte auszukommen. Um die Ausführung herkömmlicher X11-Anwendungen in einer Wayland-basierten Umgebung zu ermöglichen, wird die DDX-Komponente XWayland (Device-Dependent X) verwendet, die hinsichtlich ihrer Funktionsweise Xwin und Xquartz für die Plattformen Win32 und macOS ähnelt.


Quelle: opennet.ru
