Nach acht Monaten Entwicklung wird das stabile Release des Protokolls, des Mechanismus für die Interprozesskommunikation und der Wayland-Bibliotheken 1.25 vorgestellt. Der Branch 1.25 ist auf API- und ABI-Ebene mit den Releases 1.x rückwärtskompatibel und beinhaltet hauptsächlich Fehlerbehebungen sowie geringfügige Aktualisierungen des Protokolls. Die Entwicklungen des Projekts werden unter der MIT-Lizenz veröffentlicht. Der Referenzkompositor-Server Weston, der Code und Arbeitsbeispiele für die Verwendung von Wayland in Desktop-Umgebungen und eingebetteten Lösungen bereitstellt, wird in einem separaten Entwicklungszyklus weiterentwickelt.
Wichtige Änderungen im Protokoll:
- Die Dokumentation wurde von DocBook in mdBook (Markdown) konvertiert.
- Der Wayland XML-Dialekt, das Content-Update-Modell und die Möglichkeiten zur Farbverwaltung sind umfassend dokumentiert.
- Ein neues Attribut „frozen“ wurde für Schnittstellen mit mehreren übergeordneten Schnittstellen 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 angehängten Puffers zu erhalten. Im Gegensatz zu wl_buffer.release ist die Benachrichtigung in wl_surface.get_release an einen bestimmten Rendering-Moment gebunden.
- Die Funktion wl_display_dispatch_pending_single() wurde hinzugefügt, um ein Ereignis aus der Warteschlange abzurufen und nur ein Ereignis zu verarbeiten, anstatt alle angesammelten Ereignisse, wie es wl_display_dispatch_pending() tut.
- Farben für Debug-Ausgaben von WAYLAND_DEBUG wurden bereitgestellt.
Seit der Veröffentlichung von Wayland 1.25 wurden Protokollerweiterungen hinzugefügt, die das grundlegende Wayland-Protokoll ergänzen und in einem separaten Set von Wayland-Protocols bereitgestellt werden:
- xx-input-method — ermöglicht es Anwendungen, Texteingabemethoden für Kompositoren zu implementieren. Server und den eingegebenen Text zu formatieren, was beispielsweise für die Erstellung virtueller Tastaturen und IME-Schichten (Input Method Editor) zur Eingabeverarbeitung verwendet werden kann.
- xx-text-input — ermöglicht es Kompositorservern, Eingabemethoden zu implementieren und Text an Anwendungen zu übermitteln. Das Protokoll standardisiert die Interaktion zwischen dem Kompositor Server und den Anwendungen und ermöglicht die Verwaltung solcher Funktionen wie die Übermittlung eingegebenen Textes, die Verarbeitung von Eingabefokusänderungsveranstaltungen und die Berücksichtigung spezifischer Eingabefelder (Sprache, Textmarkierung, Inhaltstyp).
- Die Protokolle color-management-v1 und color-representation-v1 wurden überarbeitet und bieten Funktionen zur Farbverwaltung, HDR-Unterstützung und zur Festlegung der FarDarstellung von Wayland-Oberflächen.
Die bemerkenswertesten Ereignisse im Zusammenhang mit Wayland, die seit der Veröffentlichung der letzten Version aufgetreten sind:
- 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 migriert die IDE IntelliJ standardmäßig auf die Verwendung von Wayland.
- Xfce hat den Kompositserver Xfwl4 angekündigt, der Wayland verwendet.
- Die Desktop-Umgebung Budgie 10.10 wurde auf Wayland umgestellt.
- QNX Developer Desktop basiert auf Wayland.
- Marathon OS — ein mobiler Betriebssystem auf Basis von Wayland.
- Veröffentlichung von Wayback, einer Schicht zur Ausführung von X11-Desktops unter Verwendung von Wayland-Komponenten.
- In Cinnamon wurde die optionale Möglichkeit hinzugefügt, Sitzungsdateien für Wayland zu installieren, sowie die Möglichkeit, die Tastaturbelegung bei Verwendung von Wayland zu wechseln.
- Im Wine-Treiber wurde Unterstützung für die Zwischenablage, Eingabemethoden, nicht-rechteckige Fenster und Transparenz in Umgebungen basierend auf Wayland 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 für die Interaktion zwischen Compositing- сервера und damit verbundenen Anwendungen darstellt. Die Clients führen die Darstellung ihrer Fenster selbst in einem separaten Puffer aus und übermitteln die Aktualisierungsinformationen an den Compositor. Server, der die Inhalte der Puffer einzelner Anwendungen kombiniert, um die endgültige Ausgabe unter Berücksichtigung möglicher Besonderheiten wie Fensterüberlappungen und Transparenz zu erstellen. Mit anderen Worten, der Compositor-Server stellt keine API für das Rendern einzelner Elemente bereit, sondern arbeitet nur mit bereits erstellten Fenstern, was es ermöglicht, die doppelte Pufferung bei der Verwendung von hochgradigen Bibliotheken wie GTK und Qt, die für die Anordnung des Fensterinhalts verantwortlich sind, zu vermeiden.
Wayland löst viele Sicherheitsprobleme von X11, da es im Gegensatz zu letzterem die Eingabe und Ausgabe für jedes Fenster isoliert, es dem Client nicht erlaubt, auf den Inhalt anderer Fenster zuzugreifen, und das Abfangen von eingabeverknüpften Ereignissen zwischen anderen Fenstern nicht zulässt. Die Unterstützung für die direkte Arbeit mit Wayland ist für die meisten in Linux verwendeten Grafikbibliotheken umgesetzt, darunter 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 Wechseln der 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 erfolgen, das auf Kernel-Ebene arbeitet, was es ermöglicht, ohne Superuser-Rechte auszukommen. Für die Ausführung herkömmlicher X11-Anwendungen in einer Umgebung auf Basis von Wayland wird die DDX-Komponente XWayland (Device-Dependent X) verwendet, die in ihrer Funktionsweise Xwin und Xquartz für die Plattformen Win32 und macOS ähnelt.


Quelle: opennet.ru
