Wayland 1.24 ist verfügbar

Nach 13 Monaten Entwicklung wurde die stabile Version des Protokolls, des Mechanismus für die Inter-Prozessor-Kommunikation und der Wayland-Bibliotheken 1.24 veröffentlicht. Die Version 1.24 bleibt auf API- und ABI-Ebene mit den 1.x-Releases abwärtskompatibel und enthält hauptsächlich Fehlerbehebungen sowie geringfügige Aktualisierungen des Protokolls. Die Ergebnisse des Projekts werden unter der MIT-Lizenz veröffentlicht. Der Referenzkomposite-Server Weston, der Code und Arbeitsbeispiele zur Verwendung von Wayland in Desktop-Umgebungen und Embedded-Lösungen bereitstellt, wird im Rahmen eines separaten Entwicklungszyklus weiterentwickelt.

Wichtige Änderungen im Protokoll:

  • Die Schnittstelle wl_fixes wurde implementiert, um Probleme mit anderen Software-Schnittstellen der Basisprotokolle zu lösen, die nicht mit den eigenen Fähigkeiten dieser Schnittstellen behoben werden können. Beispielsweise ermöglicht die Anfrage „wl_fixes::destroy_registry“ die Beseitigung des Objekts wl_registry, nach dessen Löschung der Client es nicht mehr verwenden kann und der Kompositserver die Übertragung von Ereignissen über dieses nicht mehr fortsetzt.
  • In der Programmierschnittstelle wl_keyboard::key wurde der Pseudo-Zustand "repeated" implementiert, der bedeutet, dass sich die Taste im gedrückten Zustand befindet. Eine Taste kann nur dann in den Zustand "repeated" versetzt werden, nachdem sie in den Zustand "pressed" übergegangen ist, jedoch bevor sie den Zustand "released" erreicht. Ereignisse, die mit dem neuen Zustand verbunden sind, können mehrmals generiert werden, solange die Taste gedrückt bleibt. Diese Änderung ermöglicht es, dass Komposit-Server wiederholte Tastenanschläge beim Halten von Tasten als separate Zustände behandeln, anstatt sie einfach als Stream von wiederholten "pressed"-Ereignissen zu betrachten, was für die organisatorische Handhabung nützlich sein kann. Remote-Desk.
  • Die Funktionen wl_display_dispatch_queue_timeout() und wl_display_dispatch_timeout() wurden hinzugefügt, um Ereignisse in der Warteschlange unter Berücksichtigung eines Timeouts zu dispatchen (die Funktionen wl_display_dispatch und wl_display_dispatch_queue geben nur 0 zurück, wenn keine Ereignisse auftreten, während die Varianten *_timeout auch beim Eintreten eines Timeouts zurückgeben).
  • Die Funktionen wl_shm_buffer_ref() und wl_shm_buffer_unref() wurden hinzugefügt, um auf den gemeinsamen Speicher zuzugreifen, der mit dem wl_shm_buffer verbunden ist, nachdem dieser entfernt wurde (z. B. wenn der Client beendet wird). Diese Funktionen ermöglichen es, den wl_shm_buffer vom Lebenszyklus der Hauptressource wl_buffer zu lösen, wenn der Kompositionsserver den Übergang zu einem neuen Zustand verzögern muss.
  • Die Funktionen wl_proxy_get_interface() und wl_resource_get_interface() wurden hinzugefügt, um die wl_interface für die angegebene Ressource zurückzugeben, was in Bindings für dynamisch typisierte Sprachen benötigt wird.
  • Die Funktion wl_resource_post_error_vargs() wurde hinzugefügt und stellt eine Alternative zur Funktion wl_resource_post_error() dar, wobei eine Liste von Argumenten zur Stringformatierung (va_list) übergeben werden kann.

Die bemerkenswertesten Ereignisse im Zusammenhang mit Wayland, die seit der Veröffentlichung der letzten Version aufgetreten sind:

  • Verbesserte Unterstützung für Wayland in proprietären NVIDIA-Treibern.
  • KDE plant, nur die Unterstützung für Wayland beizubehalten. Trennung des Codes kwin_x11 und kwin_wayland.
  • Ubuntu und Kubuntu werden nur die Unterstützung für Wayland-Sitzungen in GNOME und KDE beibehalten.
  • In GDM bleibt standardmäßig nur die Unterstützung für Wayland erhalten.
  • GTK hat das X11-Backend als veraltet markiert.
  • In Fedora 43 wurde beschlossen, die Pakete zu entfernen, die in GNOME für den Betrieb über den X-Server verwendet werden. Alle GNOME-Benutzer mit X11 werden gezwungen, auf eine Wayland-basierte Sitzung umzuschalten.
  • In der Budgie-Desktop-Umgebung wird nur Wayland unterstützt.
  • In Xfce 4.20 wurde partielle Unterstützung für Wayland implementiert.
  • MATE 1.28 bietet experimentelle Unterstützung für Wayland.
  • Wayback ist ein Composite-Server für Wayland zur Ausführung von Desktops auf Basis von X11.
  • Das Unternehmen Valve hat das Projekt Frog ins Leben gerufen, um die Einführung neuer Wayland-Protokolle zu beschleunigen.
  • Die Bibliothek für grafische Benutzeroberflächen Cosmoe nutzt Wayland und eine API im BeOS-Stil.
  • Der Wayland-Treiber wird standardmäßig in Wine aktiviert.
  • Raspberry Pi OS wechselt zur Verwendung von Wayland.
  • Die grafische Toolkit-Version FLTK 1.4.0 mit Wayland-Unterstützung wurde veröffentlicht.
  • In das Wayland-Protocols-Set wurde eine zusätzliche Phase zur Förderung der Protokolle - 'experimental' - hinzugefügt, die darauf abzielt, die Integration der Protokolle zu erleichtern, die Entwicklung der Protokolle zu beschleunigen und die frühzeitige Implementierung in bestehenden Projekten zu stimulieren.
  • AMD entwickelt seinen eigenen Composite-Server ACS, der Wayland verwendet.
  • Sieben Alpha-Versionen der Desktop-Umgebung COSMIC.
  • Aktualisierung der Kompositionsserver: Weston 14.0, Niri 25.05, Wayland Maker 0.5, miracle-wm 0.5, Hyprland 0.49, labwc 0.8.3, Cage 0.2, Wayfire 0.9, Sway 1.11.

Im letzten Jahr hinzugefügte Protok-Erweiterungen, die das Basisprotokoll Wayland ergänzen und in einem separaten Set von Wayland-Protocols bereitgestellt werden:

  • color-management — Funktionen zur Farbverwaltung und Unterstützung für erweiterten Dynamikbereich (HDR, High Dynamic Range).
  • color-representation-v1 — Festlegung der Farbanzeige für Wayland-Oberflächen.
  • xdg-toplevel-tag — ermöglicht es Wayland-Clients, Tags an Oberflächen der obersten Ebene anzuhängen, die der kompositorische Server zur Identifizierung von Fenstern nach dem Neustart der Anwendung verwenden kann.
  • ext-background-effect – Anwendung von Effekten auf halbtransparente Teile der Wayland-Oberfläche, wie z.B. Hintergrundunschärfe.
  • pointer-warp – ermöglicht es einer Anwendung, den Zeiger sofort an eine angegebene Position zu verschieben.
  • xx-session-management — Wiederherstellung des Fensterzustands für unterbrochene Sitzungen (z. B. nach einem unerwarteten Abbruch des Kompositormanagers).
  • xx-input-method — Entwicklung eines neuen Protokolls zur Verwendung von Texteingabemethoden. ext-data-control — ermöglicht privilegierten Clients die Verwaltung der Datenverarbeitung, z. B. zur Implementierung von Clipboards.
  • ext-workspace — implementiert das Konzept virtuellen Arbeitsflächen und bietet Ereignisse mit Informationen über den Zustand von Arbeitsbereichen sowie Möglichkeiten zur Aktivierung und Deaktivierung von Arbeitsbereichen.
  • xdg-system-bell — ermöglicht das Ausgeben eines Systemsignals, das beispielsweise als Warnsignal im Terminalemulator verwendet werden kann.
  • xdg-toplevel-icon — zum Verknüpfen eines Symbols mit einem Top-Level-Fenster.
  • ext-image-capture-source und ext-image-copy-capture — zur Erfassung von Inhalten, die auf dem Bildschirm angezeigt werden.
  • fifo — implementiert einen FIFO-Mechanismus (first in, first out) zur Verarbeitung der Aktualisierungswarteschlange des angezeigten Inhalts.
  • commit-timing — ermöglicht es, eine Zeitbeschränkung an den Inhalt der Oberfläche zu binden (der komposite Server sollte Änderungen am Inhalt möglichst innerhalb der angegebenen Zeit anzeigen, jedoch nicht früher).

Wayland ist ein Protokoll, das die Interaktion zwischen dem Compositor und den darauf laufenden Anwendungen regelt. Die Clients zeichnen ihre Fenster eigenständig in separaten Puffern und übermitteln Änderungsinformationen an den Compositor. Dieser kombiniert die Inhalte der einzelnen Anwendungs-Puffer zu einer endgültigen Ausgabe, wobei er Aspekte wie Fensterüberlappung und Transparenz berücksichtigt. Mit anderen Worten, der Compositor stellt keine API zur Verfügung, um einzelne Elemente zu zeichnen, sondern arbeitet ausschließlich mit bereits erstellten Fenstern. Dadurch entfällt die doppelte Pufferung beim Einsatz von hochrangigen Bibliotheken wie GTK und Qt, die für das Layout der Fensterinhalte zuständig sind.

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.

Wayland 1.24 ist verfügbarWayland 1.24 ist verfügbar


Quelle: opennet.ru
Erwerben Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster