Nach achtmonatiger Entwicklungszeit wurde die stabile Version des Wayland-Protokolls 1.25, des Interprozesskommunikationsmechanismus und der zugehörigen Bibliotheken veröffentlicht. Der 1.25-Zweig ist auf API- und ABI-Ebene abwärtskompatibel zu den 1.x-Versionen und enthält hauptsächlich Fehlerbehebungen und kleinere Protokollaktualisierungen. Das Projekt ist unter der MIT-Lizenz lizenziert. Der Weston-Referenzserver, der Code und funktionierende Beispiele für die Verwendung von Wayland in Desktop-Umgebungen und eingebetteten Systemen bereitstellt, wird in einem separaten Entwicklungszyklus entwickelt.
Wesentliche Änderungen im Protokoll:
- Die Dokumentation wurde vom DocBook- ins mdBook-Format (Markdown) konvertiert.
- Der Wayland-XML-Dialekt, das Inhaltsaktualisierungsmodell und die Farbmanagementfunktionen sind vollständig dokumentiert.
- Für Schnittstellen mit mehreren übergeordneten Schnittstellen wurde das neue Attribut „frozen“ hinzugefügt.
- Es wurde eine neue Anfrage `wl_surface.get_release` hinzugefügt, um eine Benachrichtigung über die Freigabe eines vom Client über `wl_surface.attach` angehängten Puffers zu erhalten. Im Gegensatz zu `wl_buffer.release` ist die Benachrichtigung von `wl_surface.get_release` an einen bestimmten Rendering-Zeitpunkt gebunden.
- Die Funktion wl_display_dispatch_pending_single() wurde hinzugefügt. Mit ihr können Sie nur ein einzelnes Ereignis aus der Ereigniswarteschlange abrufen und verarbeiten, anstatt alle angesammelten Ereignisse, wie es wl_display_dispatch_pending() tut.
- Farbliche Hervorhebung der WAYLAND_DEBUG-Debug-Ausgabe.
Seit der Veröffentlichung von Wayland 1.25 wurden Protokollerweiterungen hinzugefügt, die das Wayland-Kernprotokoll ergänzen und in einem separaten Wayland-Protokollset bereitgestellt werden:
- xx-input-method – Ermöglicht Anwendungen die Implementierung von Texteingabemethoden für zusammengesetzte Daten. Server und den eingegebenen Text zu generieren, der beispielsweise zur Erstellung virtueller Tastaturen und IME-Layer (Input Method Editor) zur Verarbeitung von Eingaben verwendet werden kann.
- xx-text-input ermöglicht es zusammengesetzten Servern, Eingabemethoden zu implementieren und Text an Anwendungen zu senden. Das Protokoll standardisiert die Interaktion zwischen zusammengesetzten Servern. Server und Anwendungen, und ermöglicht die Verwaltung von Funktionen wie der Übertragung von Eingabetext, der Behandlung von Fokuswechselereignissen und der Berücksichtigung der Besonderheiten von Eingabefeldern (Sprache, Textauswahl, Inhaltstyp).
- Die Protokolle color-management-v1 und color-representation-v1 wurden verbessert und bieten nun Funktionen für das Farbmanagement, die HDR-Unterstützung und die Definition der Farbdarstellung einer Wayland-Oberfläche.
Die wichtigsten Ereignisse im Zusammenhang mit Wayland, die seit der Veröffentlichung der letzten Ausgabe stattgefunden haben:
- GNOME 50 hat die X11-Unterstützung entfernt. Auch KDE Plasma 6.8 wird die X11-Unterstützung einstellen.
- JetBrains stellt die IntelliJ IDE so um, dass sie standardmäßig Wayland verwendet.
- Xfce kündigte den Xfwl4 Compositing-Server mit Wayland an.
- Die Budgie 10.10 Desktop-Umgebung wurde auf Wayland migriert.
- QNX Developer Desktop basierend auf Wayland.
- Marathon OS ist ein auf Wayland basierendes mobiles Betriebssystem.
- Veröffentlichung von Wayback, einer Schicht zum Ausführen von X11-Desktops mithilfe von Wayland-Komponenten.
- Cinnamon bietet nun die Option, Sitzungsdateien für Wayland zu installieren und ermöglicht das Umschalten des Tastaturlayouts bei Verwendung von Wayland.
- Der Wine-Treiber implementiert Unterstützung für die Zwischenablage, Eingabemethoden, nicht-rechteckige Fenster und Transparenz beim Ausführen in Wayland-basierten Umgebungen.
- Cairo-Dock wurde um Wayland-Unterstützung erweitert.
- Composite-Server aktualisiert: 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.
Vergessen wir nicht, dass Wayland ein zusammengesetztes Kommunikationsprotokoll ist. Server und Anwendungen, die damit arbeiten. Clients rendern ihre Fenster unabhängig voneinander in einem separaten Puffer und übermitteln Informationen über Aktualisierungen an das Gesamtbild. ServerDer Composite-Server kombiniert die Inhalte einzelner Anwendungspuffer, um die endgültige Ausgabe zu generieren und dabei mögliche Nuancen wie Fensterüberlappung und Transparenz zu berücksichtigen. Anders ausgedrückt: Der Composite-Server stellt keine API zum Rendern einzelner Elemente bereit, sondern arbeitet ausschließlich mit vorgerenderten Fenstern. Dadurch wird doppeltes Puffern vermieden, wenn High-Level-Bibliotheken wie GTK und Qt verwendet werden, die die Komposition der Fensterinhalte übernehmen.
Wayland behebt viele Sicherheitsprobleme von X11, da es im Gegensatz zu X11 die Ein- und Ausgabe für jedes Fenster isoliert, den Zugriff eines Clients auf die Inhalte der Fenster anderer Clients verhindert und das Abfangen von Eingabeereignissen anderer Fenster unterbindet. Die Unterstützung für die direkte Arbeit mit Wayland ist für die meisten verwendeten Betriebssysteme implementiert. Linux Grafikbibliotheken wie GTK, Qt, SDL, FLTK, wxWidgets, Clutter und EFL (Enlightenment Foundation Library).
Die Interaktion mit Hardware in Wayland/Weston, wie Initialisierung, Videomodusumschaltung (DRM-Moduseinstellung) und Speicherverwaltung (GEM für i915 und TTM für Radeon und Nouveau) für Grafikkarten, kann direkt über ein Kernelmodul erfolgen, wodurch Superuser-Rechte entfallen. Um die Ausführung von Standard-X11-Anwendungen in einer Wayland-basierten Umgebung zu gewährleisten, wird die XWayland (Device-Dependent X) DDX-Komponente verwendet, deren Funktionsweise Xwin und Xquartz für Win32 ähnelt. macOS.


Source: opennet.ru
