Après presque un an de développement, la version 1.12 du gestionnaire de composition Sway a été publiée, construite à l'aide du protocole Wayland et compatible avec le gestionnaire de fenêtres mosaïque i3 et le panneau i3bar. Le code du projet est écrit en langage C et est distribué sous licence MIT. Le projet vise à être utilisé sur Linux et FreeBSD.
Sway permet d'employer un placement logique des fenêtres (le gestionnaire de fenêtres choisit dynamiquement la position et la taille de la fenêtre, tenant compte des autres fenêtres ouvertes et évitant le chevauchement), au lieu du positionnement spatial traditionnel (l'utilisateur choisit un emplacement et une taille de fenêtre arbitraires, possibles chevauchements compris). Les fenêtres sont disposées en formant une grille, optimisant l'espace à l'écran et permettant de manipuler rapidement les fenêtres uniquement au moyen du clavier. La compatibilité avec i3 est assurée au niveau des commandes, des fichiers de configuration et de l'IPC, permettant à Sway de servir de remplacement transparent à i3, utilisant Wayland au lieu de X11.
Pour aménager un environnement utilisateur complet, des composants associés sont proposés : swayidle (processus d'arrière-plan implémentant un mode veille), swaylock (verrouillage d'écran), mako (gestionnaire de notifications), grim (prise de captures d'écran), slurp (sélection de zone à l'écran), wf-recorder (enregistrement vidéo), waybar (barre d'applications), virtboard (clavier à l'écran), wl-clipboard (gestion du presse-papiers), wallutils (gestion des fonds d'écran).
Sway se développe en tant que projet modulaire, construit sur la bibliothèque wlroots, qui encapsule toutes les primitives 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, à un rendu sans appel direct à OpenGL, à l'interaction avec KMS/DRM, libinput, Wayland et X11 (une couche est fournie pour exécuter des applications X11 basées sur Xwayland). En plus de Sway, la bibliothèque wlroots est largement utilisée dans d'autres projets. En plus de prendre en charge les langages C/C++, des liaisons sont offertes pour les langages Scheme, Common Lisp, Go, Haskell, OCaml, Zig, Python et Rust.
Dans cette nouvelle version :
- Ajout de la possibilité de capturer des fenêtres individuelles.
- Prise en charge de la sortie à plage dynamique étendue de luminosité HDR10 lors de l'utilisation d'un rendu basé sur l'API Vulkan.
- Prise en charge ajoutée des protocoles Wayland :
- color-management-v1 pour la gestion des couleurs et le support de la plage dynamique étendue (HDR, High Dynamic Range).
- color-representation-v1 pour définir la représentation des couleurs de la surface Wayland.
- xdg-toplevel-tag-v1 pour l'attachement de balises par les clients Wayland aux surfaces de niveau supérieur, que le compositeur serveur peut utiliser pour restaurer la position, la taille et les propriétés des fenêtres après un redémarrage, ainsi que pour définir des règles spéciales pour différents types de fenêtres.
- ext-workspace-v1 pour créer des panneaux ou des indicateurs affichant la liste des des bureaux virtuels et permettant de basculer entre eux.
- wl_fixes pour résoudre des problèmes avec d'autres interfaces logicielles des protocoles de base qui ne peuvent pas être résolus par les capacités de ces interfaces elles-mêmes.
- Une option «—device-primaries» a été implémentée, permettant de générer un profil de couleur sur la base des données récupérées par le moniteur via l'EDID.
- Ajout du support pour détecter la présence d'un pavé numérique en utilisant le drapeau LIBINPUT_SWITCH_KEYPAD_SLIDE dans libinput.
- Des liaisons pour les touches multimédias spéciales (pause, reprendre la lecture, prochaine composition, etc.) ont été incluses dans le fichier de configuration pour contrôler la lecture de contenu multimédia via l'outil playerctl.
- Le profil de couleur de sortie srgb a été traduit pour utiliser une fonction de transfert par morceaux (piece-wise) sRGB au lieu de gamma 2.2 (pour gamma 2.2, un profil gamma22 distinct doit être utilisé, qui est appliqué par défaut).
- Le démarrage sur des systèmes avec des GPU non pris en charge (par exemple, lors de l'utilisation de pilotes propriétaires NVIDIA) génère maintenant un avertissement au lieu de se terminer par une erreur. L'avertissement peut être désactivé à l'aide du drapeau «—unsupported-gpu» ou de la variable d'environnement SWAY_UNSUPPORTED_GPU.
- Ajout du support officiel pour l'utilisation de gestionnaires d'affichage pour lancer Sway.
- De nouvelles capacités de la bibliothèque wlroots 0.20 ont été activées. Parmi les changements dans la nouvelle version de wlroots : support pour définir la représentation des couleurs de la surface Wayland, gestion des couleurs et utilisation de HDR via les protocoles color-representation-v1 et color-management-v1. Support des protocoles Wayland cursor-shape-v1 pour personnaliser l'apparence du curseur.
ext-workspace-v1 pour utiliser le concept de bureaux virtuels et xdg-toplevel-tag-v1 pour identifier les fenêtres/surfaces via le lien des balises.

Source : opennet.ru
