Nach 7 Monaten Entwicklung wurde die Version 1.11 des Kompositormanagers Sway veröffentlicht, die mit dem Wayland-Protokoll entwickelt wurde und mit dem Kachelfenstermanager i3 sowie der i3bar-Panelfunktion kompatibel ist. Der Projektcode ist in C geschrieben und wird unter der MIT-Lizenz veröffentlicht. Das Projekt ist für die Verwendung in Linux und FreeBSD konzipiert.
Sway ermöglicht es, Fenster nicht räumlich, sondern logisch auf dem Bildschirm anzuordnen. Die Fenster werden in einem Gitter angeordnet, das den Bildschirmraum optimal nutzt und eine schnelle Manipulation der Fenster ausschließlich über die Tastatur erlaubt. Die Kompatibilität mit i3 wird auf der Ebene von Befehlen, Konfigurationsdateien und IPC gewährleistet, was es ermöglicht, Sway als transparente Alternative zu i3 zu verwenden, die Wayland anstelle von X11 nutzt.
Um eine vollständige Benutzerumgebung zu gestalten, stehen folgende Komponenten zur Verfügung: swayidle (Hintergrundprozess zur Implementierung des Energiesparmodus), swaylock (Bildschirmschoner), mako (Benachrichtigungsmanager), grim (Erstellung von Bildschirmfotos), slurp (Bereichsauswahl auf dem Bildschirm), wf-recorder (Videoaufnahme), waybar (Anwendungsleiste) und virtboard (Bildschirmtastatur), wl-clipboard (Zwischenablageverwaltung) sowie wallutils (Desktop-Hintergrundverwaltung).
Sway entwickelt sich als modulares Projekt, das auf der Bibliothek wlroots basiert, die alle grundlegenden Primitiven zur Organisation der Funktionsweise eines Compositing-Managers umfasst. Wlroots beinhaltet Backends für die Abstraktion des Zugriffs auf den Bildschirm, Eingabegeräte, Rendering ohne direkten Zugriff auf OpenGL, Interaktion mit KMS/DRM, libinput, Wayland und X11 (eine Schicht für die Ausführung von X11-Anwendungen auf Basis von Xwayland). Neben Sway wird die Bibliothek wlroots auch aktiv in anderen Projekten eingesetzt. Neben der Unterstützung der Programmiersprachen C/C++ sind Bindings für die Sprachen Scheme, Common Lisp, Go, Haskell, OCaml, Zig, Python und Rust verfügbar.
In der neuen Version:
- Unterstützung für das Wayland-Protokoll linux-drm-syncobj-v1 wurde hinzugefügt, um eine explizite Synchronisierung der Puffer zu ermöglichen, die sicherstellt, dass die Zeichnung in den Puffer abgeschlossen ist, bevor der Kompositormanager diesen Puffer anzeigt.
- Unterstützung für das Wayland-Protokoll alpha-modifier-v1 wurde hinzugefügt, das es Anwendungen ermöglicht, den Transparenzgrad der Oberfläche zu ändern und die Transparenzoperationen an den Kompositor auszulagern, Serverder diese Operationen an den im Kernel betriebenen KMS-Modul weiterleiten kann.
- Unterstützung für die Wayland-Protokolle ext-image-capture-source und ext-image-copy-capture wurde hinzugefügt, um Inhalte, die auf dem Bildschirm angezeigt werden, zu erfassen.
- Unterstützung für das Wayland-Protokoll ext-data-control wurde hinzugefügt, das privilegierten Clients die Verwaltung der Datenverarbeitung ermöglicht, beispielsweise zur Implementierung von Zwischenablage-Managern.
- Im Interprozesskommunikationsmechanismus (IPC) wurde die Unterstützung für Metadaten zur Sicherheitskontextualisierung, die mit dem Wayland-Protokoll security-context-v1 realisiert wird, integriert.
- Die Logik der Ausgabeeinstellung wurde verbessert, um qualitativ hochwertigere und schnellere Rückkehr zu anderen Geräten zu ermöglichen.
- Die Unterstützung für Zeigertasten wurde hinzugefügt.
- Die Standardkonfigurationsdatei wurde um Tastenkombinationen zur Aufrufung der Tools pactl, brightnessctl und grim ergänzt.
- Das standardmäßig vorgeschlagene Menü wurde auf die Nutzung des Tools wmenu-run umgestellt und ist nicht mehr von dem Skript dmenu_path abhängig.
- Neue Funktionen der Bibliothek wlroots 0.19 wurden aktiviert. Zu den Änderungen in wlroots gehören:
- Implementierte Wayland-Protokolle:
- color-management-v1 (zur Unterstützung von HDR10);
- ext-image-capture-source-v1 und ext-image-copy-capture-v1 (für die Aufnahme von Bildschirminhalten);
- ext-data-control-v1 (zur Verwaltung der Zwischenablage);
- xdg-toplevel-icon-v1 (zum Binden eigener Icons);
- xdg-dialog-v1 (für die Erstellung von erweiterten Dialogfenstern);
- xdg-system-bell-v1 (für die Ausgabe eines Signals);
- ext-idle-notify-v1 (zur Überwachung der Aktivität);
- presentation-time (für adaptive Änderung der Monitoraktualisierungsfrequenz);
- wlr-layer-shell-v1.5 (für die Definition von Grenzen exklusiver Zonen auf dem Bildschirm).
- In den Backends und Render-Engines wurde die Unterstützung für die explizite Synchronisierung von Puffern mithilfe von DRM (Direct Rendering Manager) Synchronisationsobjekten implementiert.
- Multi-GPU-Unterstützung für Ausgabegeräte wie USB-Grafikadapter wurde hinzugefügt.
- Die Implementierung von Direct Scanout in den Backends unterstützt jetzt das Zuschneiden und Skalieren von Puffern.
- Die Operationen mit dem Szenengraphen wurden optimiert.
- Implementierte Wayland-Protokolle:

Quelle: opennet.ru
