Die neue Version des Kompositormanagers Sway 1.7 wurde veröffentlicht, die auf dem Wayland-Protokoll basiert und vollstÀndig kompatibel mit dem Kachel-Window-Manager i3 und der i3bar ist. Der Code des Projekts ist in C geschrieben und wird unter der MIT-Lizenz vertrieben. Das Projekt zielt auf die Nutzung in Linux und FreeBSD ab.
Die KompatibilitĂ€t mit i3 wird auf Ebene der Befehle, Konfigurationsdateien und IPC gewĂ€hrleistet, sodass Sway als transparenter Ersatz fĂŒr i3 verwendet werden kann, der Wayland anstelle von X11 nutzt. Sway ermöglicht es, Fenster nicht rĂ€umlich, sondern logisch auf dem Bildschirm anzuordnen. Fenster werden in einem Gitter angeordnet, das den Bildschirmplatz optimal nutzt und eine schnelle Manipulation der Fenster nur ĂŒber die Tastatur erlaubt.
Zur Einrichtung einer vollstÀndigen BenutzeroberflÀche werden begleitende Komponenten angeboten: swayidle (Hintergrundprozess mit Implementierung des KDE idle-Protokolls), swaylock (Bildschirmschoner), mako (Benachrichtigungsmanager), grim (Screenshot-Erstellung), slurp (Bereichsauswahl auf dem Bildschirm), wf-recorder (Videoaufnahme), waybar (Anwendungsleiste), virtboard (Bildschirmtastatur), wl-clipboard (Zwischenablageverwaltung), wallutils (Desktop-Hintergrundverwaltung).
Sway entwickelt sich als modularisiertes Projekt, das auf der Bibliothek wlroots aufbaut, in die alle grundlegenden Primitiven zur Organisation des Kompositormanagers ausgelagert wurden. Wlroots umfasst Backends zur Abstraktion des Zugriffs auf Bildschirme, EingabegerĂ€te, Rendering ohne direkten Zugriff auf OpenGL, Interaktion mit KMS/DRM, libinput, Wayland und X11 (ein Layer wird bereitgestellt, um X11-Anwendungen mithilfe von Xwayland auszufĂŒhren). Neben Sway wird die Bibliothek wlroots auch in anderen Projekten eingesetzt, darunter Librem5 und Cage. Neben C/C++ wurden Bindings fĂŒr Scheme, Common Lisp, Go, Haskell, OCaml, Python und Rust entwickelt.
In der neuen Version:
- Es ist nun möglich, Tabs mit der Maus zu verschieben.
- UnterstĂŒtzung fĂŒr die Ausgabe auf Virtual-Reality-Headsets hinzugefĂŒgt.
- Der Befehl âoutput render_bit_depthâ zur Aktivierung des Kompositing-Modus mit hoher Farbtiefe wurde hinzugefĂŒgt.
- Die ZuverlÀssigkeit und Leistung der Ausgabe von Vollbildfenstern wurde verbessert (durch Verwendung von dmabuf erfolgt eine direkte Ausgabe ohne zusÀtzliche Pufferung).
- Das Protokoll xdg-activation-v1 wurde aktiviert, das es ermöglicht, den Fokus zwischen verschiedenen OberflĂ€chen erster Ebene zu ĂŒbertragen (z. B. kann ein Anwendung mithilfe von xdg-activation den Fokus auf eine andere Anwendung wechseln).
- Die Option client.focused_tab_title zur Anpassung der Farbe des aktiven Tabs wurde hinzugefĂŒgt.
- Der Befehl âoutput modelineâ zur Festlegung eines benutzerdefinierten DRM-Modus (Direct Rendering Manager) wurde hinzugefĂŒgt.
- Der Befehl âoutput dpms toggleâ zur Vereinfachung der Bildschirmschaltung ĂŒber Skripte wurde hinzugefĂŒgt. AuĂerdem wurden die Befehle âgaps toggle â, âsmart_gaps inverse_outerâ und âsplit noneâ hinzugefĂŒgt.
- Die Option ââmy-next-gpu-wont-be-nvidiaâ wurde entfernt, stattdessen sollte der Modus ââunsupported-gpuâ verwendet werden. ProprietĂ€re NVIDIA-Treiber werden weiterhin nicht unterstĂŒtzt.
- Der im Standardkonfiguration festgelegte Terminal-Emulator wurde durch Foot ersetzt.
- Es wurde die Möglichkeit geschaffen, die Swaybar und die Swaynag-Dialogs wÀhrend des Builds auszuschalten.
- Die dynamische Ănderung der Fensterhöhe basierend auf den Zeichen im Fenstertitel ist verboten, der Titel hat jetzt immer eine feste Höhe.

Quelle: opennet.ru
