Nach viermonatiger Entwicklung wurde die stabile Version des Protokolls, des Mechanismus zur Interprozesskommunikation und der Wayland-Bibliotheken 1.26 veröffentlicht. Der Branch 1.26 ist API- und ABI-kompatibel mit den Veröffentlichungen 1.x und enthĂ€lt hauptsĂ€chlich Fehlerbehebungen sowie geringfĂŒgige Aktualisierungen des Protokolls. Die Arbeiten des Projekts werden unter der MIT-Lizenz verbreitet. Der Referenzkompositormanager Server Weston, der Code und Arbeitsbeispiele fĂŒr die Verwendung von Wayland in Desktop-Umgebungen und eingebetteten Lösungen bereitstellt, entwickelt sich im Rahmen eines separaten Entwicklungszyklus.
HauptÀnderungen im Protokoll:
- Ein Ereignis wl_pointer.warp wurde hinzugefĂŒgt, ĂŒber das Benachrichtigungen ĂŒber die neue Position des Zeigers ohne die Verarbeitung des Ereignisses wl_pointer.motion, das bei BenutzeraktivitĂ€t erzeugt wird, empfangen werden können.
- Der Request wl_fixes.ack_global_remove wurde hinzugefĂŒgt, um dem Kompositormanager zu bestĂ€tigen, dass der Client die Verarbeitung des Ereignisses eingestellt hat, um einen Wettlaufzustand beim Entfernen globaler Ereignisse zu vermeiden. Nachdem alle Clients eine BestĂ€tigung erhalten haben, kann der Kompositormanager den zugehörigen Ereignis-Handler auf seiner Seite entfernen.
- Die Funktion wl_display_remove_socket_fd() wurde hinzugefĂŒgt, um Sockets zu entfernen, die zuvor ĂŒber den Call wl_display_add_socket_fd() hinzugefĂŒgt wurden.
- Im Debug-Modus WAYLAND_DEBUG wird im Log die Zeit im Format âHH:MM:ss.xxxxxxâ angezeigt, was das Analysieren und Vergleichen von Logs vereinfacht.
Nach der letzten Veröffentlichung von Wayland hinzugefĂŒgte Protokollerweiterungen, die das Basiskonzept von Wayland ergĂ€nzen und in einem separaten Set namens Wayland-Protocols bereitgestellt werden:
- xx-fractional-scale â zur Skalierung des Systems von logischen Koordinaten, deren Werte als ganze Zahlen angegeben werden, um die Genauigkeit der Positionierung zu erhöhen und die Auflösung der logischen Koordinaten auf einzelne Pixel zu steigern. Diese FunktionalitĂ€t löst das Problem der begrenzten Auflösung des Systems von logischen Koordinaten, das fĂŒr die Positionierung auf der Ebene einzelner Pixel, die fĂŒr eine vollstĂ€ndige Implementierung des fractional scaling erforderlich ist, nicht ausreicht.
- xx-cutouts â um Informationen ĂŒber Ausschnitte auf dem Bildschirm (z.B. Bereiche fĂŒr die Frontkamera auf dem Bildschirm eines Smartphones) zu erhalten.
- xx-zones â zum Erstellen und HinzufĂŒgen von obersten Fenstern in "Zonen" â Umgebungen mit eigenen KoordinatenrĂ€umen. Das Protokoll ermöglicht die logische Anordnung von Fenstern, bei der jedes Fenster relativ zu einem anderen Fenster positioniert wird.
- xx-keyboard-filter â zum Abfangen ausgewĂ€hlter Tastaturereignisse durch den Client, zur Ănderung von Eingabeereignissen oder zur Blockierung der Ăbertragung bestimmter Ereignisse an die Wayland-OberflĂ€che, auf der der Eingabefokus liegt.
- Dem Bereich âstagingâ wurde das Protokoll xdg-session-management hinzugefĂŒgt, das Funktionen fĂŒr die Wiederherstellung des Zustands und der Position von Fenstern einer unterbrochenen Sitzung in Umgebungen auf Basis des Wayland-Protokolls bietet, beispielsweise nach einem Absturz des Compositors Server oder der Anwendung.
- Das Protokoll âlinux-dmabufâ hat die UnterstĂŒtzung fĂŒr den Betrieb auf Systemen mit mehreren GPUs erweitert. Auf solchen Systemen kann der Client mit den Compositors abstimmen, Server welche GPU verwendet werden soll.
- Das Protokoll color-management-v1 hat die UnterstĂŒtzung fĂŒr Bildmetadaten im BT.2100-Format integriert, um spezifische Handler fĂŒr die korrekte Anzeige von HDR-Inhalten, die fĂŒr Windows erstellt wurden, in Compositors anzuwenden. Server spezifische Handler, die eine korrekte Anzeige von fĂŒr Windows erstelltem HDR-Inhalt ermöglichen.
Die bemerkenswertesten Ereignisse, die mit Wayland in Verbindung stehen und nach der Veröffentlichung der letzten Version aufgetreten sind:
- Cinnamon hat vollstĂ€ndige UnterstĂŒtzung fĂŒr Wayland umgesetzt.
- In die ANGLE-Bibliothek, die in Chrome und Android verwendet wird, wurde UnterstĂŒtzung fĂŒr Wayland hinzugefĂŒgt.
- In KDE wurde die UnterstĂŒtzung fĂŒr die Wiederherstellung von Sitzungen unter Verwendung von Wayland implementiert, ebenso wurde das Wayland-Protokoll xx-fractional-scale-v2 fĂŒr eine fractional Scale realisiert.
- Ein Port des X.Org-Treibers Synaptics fĂŒr Umgebungen auf Basis von Wayland wurde erstellt.
- Es wurde eine ĂberprĂŒfung der Bereitschaft von VFX- und Animationsplattformen zur Ablösung von X11 durch Wayland initiiert.
- Die Tests des Composite-Servers Xfwl4 vom Xfce-Projekt haben begonnen.
- Auf Basis von Wayfire und Libadwaita wurde die BenutzeroberflÀche Unity nachgestellt.
- Die Compositors und Desktop-Umgebungen wurden aktualisiert: COSMIC 1.3.0, Weston 16, Phosh 0.56, Nourish 1.0.0, miracle-wm 0.10, KDE Plasma 6.7, labwc 0.20, Sway 1.2, Wayland Maker 0.8, Hyprland 0.55, Niri 26.04, LXQt 2.4.0, Cage 0.3.
Wir erinnern daran, dass Wayland ein Protokoll fĂŒr die Interaktion zwischen dem Compositor und den mit ihm verbundenen Anwendungen darstellt. Die Clients fĂŒhren die Darstellung ihrer Fenster selbst in einem separaten Puffer aus und ĂŒbermitteln Informationen ĂŒber Ănderungen an den Compositor. 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 im X.Org Server, da es im Gegensatz zu letzterem die Eingabe und Ausgabe fĂŒr jedes Fenster isoliert, es dem Client nicht erlaubt, auf den Inhalt anderer Clients zuzugreifen, und es verhindert, dass Eingabeveranstaltungen, die mit anderen Fenstern verbunden sind, abgefangen werden (im XLibre XServer ist das X11-Erweiterung Xnamespace implementiert, das die Isolation von Clients durch Namensraumtrennung ermöglicht). Die UnterstĂŒtzung fĂŒr die direkte Arbeit mit Wayland ist fĂŒr die meisten in Linux verwendeten grafischen Bibliotheken, einschlieĂlich GTK, Qt, SDL, FLTK, wxWidgets, Clutter und EFL (Enlightenment Foundation Library), verfĂŒgbar.
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
