La sortie du gestionnaire de composition Sway 1.7, construit en utilisant le protocole Wayland et entièrement compatible avec le gestionnaire de fenêtres en mosaïque i3 et le panneau i3bar, a été publiée. Le code du projet est écrit en C et est distribué sous licence MIT. Le projet est destiné à être utilisé sur 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 :
- Il est maintenant possible de déplacer les onglets avec la souris.
- Ajout du support pour la sortie vers des casques de réalité virtuelle.
- Ajout de la commande « output render_bit_depth » pour activer le mode de composition avec une profondeur de couleur élevée.
- Amélioration de la fiabilité et des performances de sortie des fenêtres en plein écran (grâce à dmabuf, sortie directe sans mise en tampon supplémentaire).
- Le protocole xdg-activation-v1 est activé, permettant de transférer le focus entre différentes surfaces de premier niveau (par exemple, via xdg-activation, une application peut transférer le focus à une autre).
- Ajout de l'option client.focused_tab_title pour configurer la couleur de l'onglet actif.
- Ajout de la commande « output modeline » pour définir son propre mode DRM (Direct Rendering Manager).
- Ajout de la commande « output dpms toggle » pour simplifier la mise en veille de l'écran à partir de scripts. Ajout des commandes « gaps toggle », « smart_gaps inverse_outer » et « split none ».
- L'option « —my-next-gpu-wont-be-nvidia » a été supprimée, à la place il faut utiliser le mode « —unsupported-gpu ». Les pilotes propriétaires NVIDIA ne sont toujours pas pris en charge.
- L'émulateur de terminal défini par défaut a été remplacé par foot.
- Il est maintenant possible de désactiver la barre swaybar et les dialogues swaynag pendant la compilation.
- Modification dynamique de la hauteur de l'en-tête de la fenêtre interdite en fonction des caractères dans le texte de l'en-tête, l'en-tête a maintenant une hauteur fixe.

Source : opennet.ru
