Nach 8 Monaten Entwicklung wurde die Version 1.10 des Composite Managers Sway veröffentlicht, der unter Verwendung des Wayland-Protokolls entwickelt wurde und mit dem Kachelfenster-Manager i3 sowie der i3bar kompatibel ist. Der Projektcode ist in C geschrieben und wird unter der MIT-Lizenz vertrieben. Das Projekt ist fĂŒr die Nutzung unter Linux und FreeBSD ausgelegt.
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:
- Neue Funktionen der Bibliothek wlroots 0.18 wurden aktiviert, wie die UnterstĂŒtzung der Wayland-Protokolle linux-drm-syncobj-v1, alpha-modifier-v1, ext-foreign-toplevel-list-v1 und ext-transient-seat-v1, die Möglichkeit zur Nutzung von ICC-Farbprofilen fĂŒr die Grafik-API Vulkan, die UnterstĂŒtzung fĂŒr GPU-Reset-Operationen sowie eine neue Rendering-API, die keinen Zwischenzustand speichert (stateless) und es ermöglicht, Informationen ĂŒber Pixel-Puffer aus der GPU abzurufen.
- Der Rendering-Code wurde unter Verwendung des hinzugefĂŒgten wlroots API auf Basis des Szenengraphen (Scene Graph) neu geschrieben. Es wird angemerkt, dass die Ăberarbeitung eine Leistungssteigerung ermöglicht hat.
- Der Zustand nach dem GPU-Reset kann nun wiederhergestellt werden.
- Ein Befehl zur Verwendung von ICC-Profilen fĂŒr AusgabegerĂ€te wurde hinzugefĂŒgt.
- Der Algorithmus zur Konfiguration von AusgabegerÀten wurde verbessert.
- Die Möglichkeit, die Erweiterung des Protokolls »tearing-control-v1« zu nutzen, wurde bereitgestellt, um die vertikale Synchronisation (VSync), die zur Vermeidung von Tearing in Vollbildanwendungen dient, auszuschalten. In Multimedia-Anwendungen sind Artefakte durch Tearing unerwĂŒnscht, wĂ€hrend in Spielen Artefakte tolerierbar sind, solange deren BekĂ€mpfung nicht zu zusĂ€tzlichen Verzögerungen fĂŒhrt.
- Die UnterstĂŒtzung der Protokollerweiterung »ext-transient-seat-v1« wurde hinzugefĂŒgt, um temporĂ€re, unabhĂ€ngige Sitzungen (seats) zu erstellen, die fĂŒr die Verwendung mit virtuellen EingabegerĂ€ten ausgelegt sind. Zum Beispiel in Anwendungen zur Verbindung mit einem Remote-Desktop, wie der VNC-Client wayvn, kann fĂŒr jeden Benutzer eine separate Sitzung mit virtueller Tastatur und Maus erstellt werden.
- Die UnterstĂŒtzung fĂŒr die Erweiterung des Protokolls âext-foreign-toplevel-list-v1â wurde hinzugefĂŒgt, um Informationen ĂŒber sicherheitshalber auf der obersten Ebene (toplevel) platzierte OberflĂ€chen zu erhalten. Das Protokoll ermöglicht es, Fenster ĂŒber andere Inhalte zu fixieren, beispielsweise zur Implementierung von Panels und Fensterumschaltern.
- Die UnterstĂŒtzung fĂŒr die fĂŒnfte Version des Protokolls âxdg-shellâ wurde hinzugefĂŒgt, die Funktionen zur Ănderung der Position von Pop-up-Fenstern und zur Implementierung von Minimierungs- und Maximierungs-Tasten bei der Dekoration der Fenster auf der Client-Seite (CSD) bietet.
- Das Paket dmenu_run, das dmenu als Anwendungstart-Interface verwendet, wurde aus den Standardkonfigurationen entfernt.
- In die Standardkonfiguration wurde die Nutzung von pactl zur Konfiguration von Hotkeys zur Regelung von LautstÀrke und Helligkeit sowie zur Aufrufung des Tools grim zur Erstellung von Screenshots aufgenommen.
- Die UnterstĂŒtzung des veralteten Wayland-Protokolls wl_drm wurde standardmĂ€Ăig deaktiviert, ersetzt durch das Protokoll linux-dmabuf-v1.
- Die Build-Option fĂŒr die UnterstĂŒtzung von Xwayland wurde entfernt (Xwayland wird nun von den Build-Einstellungen von wlroots abhĂ€ngt).

Quelle: opennet.ru
