Après 11 mois de développement, la version 1.8 du gestionnaire de composition Sway est publiée, construite en utilisant le protocole Wayland et entièrement compatible avec le gestionnaire de fenêtres mosaïque i3 et le panneau i3bar. Le code du projet est écrit en C et est distribué sous la licence MIT. Le projet est destiné à une utilisation 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 :
- Une nouvelle commande « bindgesture » a été mise en œuvre pour lier des actions aux gestes sur le pavé tactile.
- Le processus de verrouillage d'écran (swaylock) a été adapté pour utiliser le protocole Wayland ext-session-lock-v1, ce qui a permis d'améliorer la fiabilité et la sécurité du verrouillage de la session.
- Une nouvelle commande « output unplug » a été ajoutée pour retirer les dispositifs de sortie virtuels.
- La prise en charge des événements de défilement de haute résolution a été ajoutée.
- Le support de l'option « disable while trackpointing » a été assuré dans la bibliothèque libinput pour gérer la désactivation du pavé tactile lors de l'utilisation du joystick à tension (trackpoint) sur les ordinateurs portables Thinkpad.
- Pour améliorer la fiabilité de la détection de l'espace de travail lors du lancement de nouvelles applications clientes, le protocole xdg-activation-v1 a été activé.
- Dans la bibliothèque wlroots, la mise en œuvre du système de rendu a été améliorée à l'aide de l'API graphique Vulkan.
- Pour optimiser le processus de planification des lancements de tâches sur la plateforme Linux, il a été possible d'attribuer les privilèges CAP_SYS_NICE.
- Le support de l'utilisation du drapeau SUID root a été abandonné.
- La commande « output dpms » a été déclarée obsolète, et elle est désormais remplacée par la commande « output power ».
- Pour le traitement des expressions régulières, la bibliothèque pcre a été remplacée par pcre2.
Source : opennet.ru
