Nach fast drei Jahren Entwicklung wurde die Composite-Server-Version Wayfire 0.8 veröffentlicht, die Wayland nutzt und ressourcenschonende Benutzeroberflächen mit 3D-Effekten im Stil von 3D-Plugins für Compiz ermöglicht (Bildschirmwechsel über einen 3D-Würfel, räumliche Fensteranordnung, Morphing beim Arbeiten mit Fenstern usw.). Wayfire unterstützt Erweiterungen durch Plugins und bietet ein flexibles Anpassungssystem. Der Code des Projekts ist in C++ geschrieben und wird unter der MIT-Lizenz verbreitet.
Das Projekt basiert auf der Bibliothek wlroots, die von den Entwicklern der Desktop-Umgebung Sway weiterentwickelt wird und grundlegende Funktionen für die Organisation des Betriebs des Kompositmanagers auf Basis von Wayland bereitstellt. Für die Sitzungsverwaltung können systemd, elogind oder seatd verwendet werden. Die Ausführung von X11-Anwendungen ist mithilfe von XWayland möglich. Als Panel kann wf-shell von den Entwicklern von Wayfire oder das Drittanbieter-Panel LavaLauncher verwendet werden. Das Projekt entwickelt auch eine Bibliothek zur Arbeit mit Konfigurationsdateien, wf-config, sowie einen grafischen Konfigurator, wcm.
In der neuen Version:
- Das Plugin "wsets" (Workspace-Sets) wurde hinzugefügt, das die Arbeit mit Sammlungen ermöglicht. virtuellen Arbeitsflächen. In der Sammlung können Desktops, die zu einem bestimmten Thema gehören (z. B. Arbeit an einem Hauptprojekt, Arbeit an einem persönlichen Projekt, Unterhaltung), zusammengeführt werden, um sie gleichzeitig auf dem Bildschirm anzuzeigen. Der Benutzer kann jederzeit zu einer anderen Sammlung wechseln und einen anderen Satz virtueller Desktops erhalten. Auf jedem Bildschirm kann eine eigene Sammlung von Desktops angezeigt werden (zum Beispiel kann auf einem externen Monitor eine Sammlung für Unterhaltung verwendet werden, während auf dem integrierten Bildschirm des Laptops eine Arbeitssammlung angezeigt wird). Das Verschieben von Sammlungen zwischen Bildschirmen wird unterstützt.

- Es wurde die Möglichkeit geschaffen, den Compositor-Manager über IPC-Befehle zu steuern, die über einen Netzwerksocket übertragen werden. Die Funktionalität wird durch das Plugin ipc und zusätzliche Plugins zur Befehlsbearbeitung realisiert; z. B. umfasst das Plugin ipc-rules grundlegende Fenstersteuerungsbefehle. Zukünftig ist geplant, die Unterstützung für zusätzliche Befehle und Ereignisse hinzuzufügen.
- Die Navigation zwischen virtuellen Desktops mit der Tastatur wurde hinzugefügt.
- Im Plugin simple-tile wurden animierte Effekte implementiert.
- Im Vswitch-Plugin wurden Bindungen zum Verschieben eines Elements auf einen bestimmten virtuellen Desktop hinzugefügt.
- Die Implementierungen der Wayland-Protokolle wurden aus dem Basismodul in separate Plugins wayfire-shell, foreign-toplevel und gtk-shell ausgelagert.
- Unterstützung für das Wayland-Protokoll 'xdg-activation' hinzugefügt, das es ermöglicht, den Fokus zwischen verschiedenen Oberflächen der ersten Ebene zu übertragen (zum Beispiel kann eine Anwendung den Fokus auf eine andere über xdg-activation umschalten).
- Für die Leiste wurden neue Widgets zur Implementierung eines System-Trays, von Benachrichtigungen und einem Herunterfahrdialog angeboten. Außerdem wurde das Widget Command-output hinzugefügt, das es ermöglicht, das Ergebnis beliebiger Befehle in der Leiste anzuzeigen.
- Die vom Projekt entwickelten Komponenten, die Leiste wf-shell, die Bibliothek wf-config und der Konfigurator wcm wurden aktualisiert.

- Die API für die Plugin-Erstellung wurde erweitert und überarbeitet. Auf der einen Seite hat diese Überarbeitung die Kompatibilität mit vielen älteren Plugins beeinträchtigt, aber auf der anderen Seite konnten die meisten Probleme gelöst werden, die zuvor die Funktionalität einschränkten. Für die Arbeit mit Bildschirmlisten, Ebenen und Ansichten wird eine neue Struktur namens scenegraph angeboten. Die Programmierschnittstelle View, die für die Darstellung von Anwendungsfenstern verantwortlich ist, wurde ebenfalls überarbeitet. Zudem wurde ein Transaktionssystem hinzugefügt, das es ermöglicht, mehrere Top-Level-Oberflächen und deren Eigenschaften gleichzeitig automatisch zu aktualisieren und den Status der Fensterdekoration mit dem Hauptfenster zu synchronisieren.
Quelle: opennet.ru


