Nach fast einem Jahr Entwicklung wurde die Version 1.12 des Composite Managers Sway veröffentlicht, die mit dem Wayland-Protokoll entwickelt wurde und mit dem tiling Window Manager i3 sowie der i3bar kompatibel ist. Der Code des Projekts ist in C geschrieben und wird unter der MIT-Lizenz veröffentlicht. Das Projekt zielt auf die Verwendung unter Linux und FreeBSD ab.
Sway ermöglicht die logische Anordnung von Fenstern (der Window Manager wählt dynamisch die Position und Größe des Fensters unter Berücksichtigung anderer geöffneter Fenster und vermeidet Überlappungen), anstelle der traditionellen räumlichen Anordnung (der Benutzer wählt einen beliebigen Ort und eine Größe des Fensters mit möglichem Überlappen der Fenster). Die Fenster werden in einem Gitter angeordnet, das den Bildschirmraum optimal nutzt und es ermöglicht, Fenster schnell nur mit der Tastatur zu manipulieren. Die Kompatibilität mit i3 wird durch Befehle, Konfigurationsdateien und IPC aufrechterhalten, 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 ein modulares Projekt, das auf der Bibliothek wlroots basiert, welche alle grundlegenden Primitiven zur Organisation der Arbeit eines Compositing-Managers bereitstellt. Wlroots enthält Backends zur
Abstraktion des Zugriffs auf den Bildschirm, Eingabegeräte, Rendering ohne direkte OpenGL-Anbindung, Interaktion mit KMS/DRM, libinput, Wayland und X11 (es wird eine Schicht bereitgestellt, um X11-Anwendungen über Xwayland auszuführen). Neben Sway wird die Bibliothek wlroots auch in anderen Projekten aktiv genutzt. Neben der Unterstützung der Sprachen C/C++ werden auch Bindings für Scheme, Common Lisp, Go, Haskell, OCaml, Zig, Python und Rust angeboten.
In der neuen Version:
- Die Möglichkeit zur Aufnahme einzelner Fenster wurde hinzugefügt.
- Unterstützung für die Ausgabe im erweiterten dynamischen Helligkeitsbereich HDR10 bei Verwendung von Vulkan-basiertem Rendering implementiert.
- Unterstützung für Wayland-Protokolle hinzugefügt:
- color-management-v1 zur Farbverwaltung und Unterstützung des erweiterten dynamischen Helligkeitsbereichs (HDR, High Dynamic Range).
- color-representation-v1 zur Definition der Farbdarstellung von Wayland-Oberflächen.
- xdg-toplevel-tag-v1 zur Anbringung von Tags durch Wayland-Clients an Oberflächen der obersten Ebene, die zusammengesetzt sind. der Server zur Wiederherstellung der Position, Größe und Eigenschaften von Fenstern nach einem Neustart verwenden kann, sowie zur Festlegung besonderer Regeln für verschiedene Fensterarten.
- ext-workspace-v1 zur Erstellung von Paneelen oder Indikatoren, die eine Liste verfügbarer Elemente anzeigen virtuellen Arbeitsflächen und den Wechsel zwischen ihnen ermöglichen.
- wl_fixes zur Behebung von Problemen mit anderen Software-Schnittstellen der grundlegenden Protokolle, die nicht durch die eigenen Fähigkeiten dieser Schnittstellen gelöst werden können.
- Die Option „—device-primaries“ wurde implementiert, bei der das Farbprofil auf der Grundlage von Daten erstellt wird, die vom Monitor über EDID abgerufen werden.
- Unterstützung für die Erkennung der Anwesenheit eines Keypads hinzugefügt, unter Verwendung des LIBINPUT_SWITCH_KEYPAD_SLIDE-Flags in libinput.
- In die Konfigurationsdatei wurden Bindungen für spezielle Multimedia-Tasten (wie Pause, Wiedergabe fortsetzen, nächster Titel usw.) integriert, um die Wiedergabe von Multimedia-Inhalten mit dem Tool playerctl zu steuern.
- Das Ausgabefarbprofil srgb verwendet jetzt eine stückweise (piece-wise) Übertragungsfunktion anstelle von Gamma 2,2. Für Gamma 2,2 sollte ein separater Gamma22-Profil verwendet werden, der standardmäßig angewendet wird.
- Der Start in Systemen mit nicht unterstützten GPUs (zum Beispiel bei Verwendung von proprietären NVIDIA-Treibern) führt jetzt zu einer Warnung statt zu einem Fehlerabbruch. Die Warnung kann mit dem Flag "—unsupported-gpu" oder der Umgebungsvariable SWAY_UNSUPPORTED_GPU deaktiviert werden.
- Offizielle Unterstützung für die Verwendung von Display-Managern zum Starten von Sway wurde hinzugefügt.
- Neue Funktionen der Bibliothek wlroots 0.20 wurden implementiert. Zu den Änderungen in der neuen Version von wlroots gehören: Unterstützung für die Bestimmung der Farbdarstellung von Wayland-Oberflächen, Farbmanagement und die Verwendung von HDR durch die Protokolle color-representation-v1 und color-management-v1. Unterstützung der Wayland-Protokolle cursor-shape-v1 zur Anpassung des Cursor-Aussehens,
ext-workspace-v1 zur Verwendung des Konzepts virtueller Arbeitsflächen und xdg-toplevel-tag-v1 zur Identifikation von Fenstern/Oberflächen durch Tag-Bindungen.

Quelle: opennet.ru
