Après 14 mois de développement, la version 1.9 du gestionnaire de composition Sway a été publiée, construite avec le protocole Wayland et totalement compatible avec le gestionnaire de fenêtres en mosaïque i3 et la barre i3bar. Le code du projet est écrit en C et est distribué sous la licence MIT. Le projet vise une utilisation sous Linux et FreeBSD.
La compatibilité avec i3 est assurée au niveau des commandes, des fichiers de configuration et de l'IPC, ce qui permet d'utiliser Sway comme un remplacement transparent d'i3, utilisant Wayland au lieu de X11. Sway permet d'organiser les fenêtres à l'écran non spatialement, mais logiquement. Les fenêtres sont disposées pour former une grille, optimisant l'espace d'affichage et permettant de manipuler rapidement les fenêtres uniquement à l'aide du clavier.
Pour créer un environnement utilisateur complet, des composants complémentaires sont proposés : swayidle (un processus d'arrière-plan implémentant le protocole KDE idle), swaylock (verrou de l'écran), mako (gestionnaire de notifications), grim (capture d'écrans), slurp (sélection de la zone à l'écran), wf-recorder (capture vidéo), waybar (barre d'applications), virtboard (clavier à l'écran), wl-clipboard (gestion du presse-papiers), wallutils (gestion des fonds d'écran).
Sway évolue comme un projet modulaire, construit sur la bibliothèque wlroots, qui contient tous les primitifs de base pour organiser le fonctionnement du gestionnaire de composition. Wlroots inclut des backends pour abstraire l'accès à l'écran, aux dispositifs d'entrée, à l'affichage sans accès direct à OpenGL, à l'interaction avec KMS/DRM, libinput, Wayland et X11 (un intermédiaire est fourni pour exécuter des applications X11 sur la base de Xwayland). En plus de Sway, la bibliothèque wlroots est également largement utilisée dans d'autres projets, y compris Librem5 et Cage. En plus de C/C++, des liaisons ont été développées pour Scheme, Common Lisp, Go, Haskell, OCaml, Python et Rust.
Dans cette nouvelle version :
- De nouvelles fonctionnalités de la bibliothèque wlroots 0.17 ont été intégrées, telles que le support des protocoles Wayland content-type-v1 (traitement des informations sur le contenu affiché), xwayland-shell-v1 (liaison d'une fenêtre X11 avec une surface Wayland), wp-fractional-scale-v1 (mise à l'échelle fractionnaire), security-context-v1 (isolation sandbox) et cursor-shape-v1 (personnalisation de l'apparence du curseur).
- Le support du protocole « xdg-activation-v1 » a été amélioré, permettant de transférer le focus entre différentes surfaces Wayland de premier niveau (par exemple, via xdg-activation, une application peut transférer le focus à une autre). La nouvelle version ajoute le support du suivi du focus tenant compte des bureaux virtuels et des configurations multi-moniteurs.
- Le code de rendu du contenu a été transféré vers une nouvelle API de rendu fournie par la bibliothèque wlroots, ce qui a permis d'augmenter les performances.
- Un réglage a été ajouté au fichier de configuration pour désactiver le tampon de transfert principal.
- De nouvelles commandes de gestion des dispositifs d'entrée ont été ajoutées, permettant de définir les paramètres RotationAngle et ScrollButtonLock dans libinput pour résoudre les problèmes liés aux pavés tactiles et aux souris.
- Ajout de la prise en charge des boutons des tablettes pour redimensionner des fenêtres flottantes.
- Le support de l'événement de sortie a été ajouté au protocole IPC.
- Le projet wmenu est désormais utilisé comme menu d'applications par défaut.
- La prise en charge du protocole idle spécifique à KDE a été interrompue, remplacée par le protocole standard Wayland idle-notify-v1.


Source : opennet.ru
