L’avenir, c’est Niri
(ersei.net)- Un utilisateur de longue date de Sway et i3 est passé de Sway au gestionnaire de fenêtres en mosaïque traditionnel Niri, à la suite d’un bug de cliquer-glisser dans Sway
- Niri traite les espaces de travail comme une bande infinie que l’on fait défiler de gauche à droite, ce qui évite de trop bouleverser la disposition des fenêtres existantes lors de l’ouverture d’une nouvelle fenêtre
- Après le changement, il a obtenu une configuration utilisable en quelques heures, puis en moins d’une semaine un environnement qui lui convenait mieux que Sway ; il cite comme avantages le partage d’écran par fenêtre, l’exclusion de certaines fenêtres du partage d’écran, les captures d’écran intégrées et environ 2 heures d’autonomie en plus
- Les gestionnaires de fenêtres en mosaïque traditionnels créent une charge cognitive liée au réagencement des fenêtres et à la gestion des espaces de travail ; avec Niri, il est passé de plus de 11 espaces de travail sous Sway à 5 ou moins
- Compte tenu de la diversité des tailles d’écran et des performances de traitement actuelles, le tiling traditionnel n’a pas forcément à rester le workflow par défaut des power users, et les utilisateurs de Sway ou d’un tiling basé sur Wayland auraient intérêt à essayer Niri
Ce qui a poussé à passer de Sway à Niri
- L’auteur utilise des gestionnaires de fenêtres en mosaïque depuis une période représentant 35 % de sa vie : 5 ans sur Sway et 2 ans sur i3
- En adoptant Wayland relativement tôt, il s’était habitué à un environnement où beaucoup de choses cassaient, et il était aussi très accoutumé au workflow de Sway
- Le déclencheur direct a été un problème de cliquer-glisser dans Sway : après avoir sélectionné du texte puis glissé, l’action de sélection continuait même après avoir relâché la souris
- Les jours étant devenus des semaines sans résolution du problème, le simple fait de cliquer pour sélectionner du texte est devenu anxiogène
- Plutôt que de chercher la bibliothèque responsable ou de lancer
git bisect, il a abandonné une longue mémoire musculaire et son workflow pour essayer Niri
Fonctionnement de Niri et premières impressions
- Niri est un gestionnaire de fenêtres en mosaïque à défilement, où chaque espace de travail fonctionne comme une bande infiniment large que l’on peut faire défiler horizontalement
- L’ouverture d’une nouvelle fenêtre ne modifie pas la disposition des autres, ce qui réduit les cas où Firefox se retrouve repoussé à un endroit inattendu à l’ouverture d’un terminal
- Il a pu créer une configuration tout à fait exploitable en quelques heures, puis en moins d’une semaine une configuration qui lui convenait mieux que Sway
- Il dit avoir retrouvé la sensation de l’époque où il changeait de distribution ou de gestionnaire de fenêtres pour tester sans trop réfléchir des outils nouveaux et risqués en apparence
Améliorations perçues par rapport à Sway
- Niri prend en charge le partage d’écran par fenêtre et permet aussi d’empêcher certaines fenêtres d’apparaître dans le partage d’écran
- Lorsqu’il diffuse ses devoirs en streaming, cela réduit le risque de voir apparaître dans un coin de l’écran des notifications sensibles, comme des alertes d’e-mails bancaires
- Il a apprécié l’outil de capture d’écran intégré, qu’il juge meilleur que la combinaison grim+slurp recommandée avec Sway
- Par rapport à Sway, l’autonomie a augmenté d’environ 2 heures
- Même en ajoutant des fonctionnalités IPC à Niri, l’expérience de développement a été bonne
Critiques des gestionnaires de fenêtres en mosaïque traditionnels
- Les gestionnaires de fenêtres en mosaïque traditionnels poussent l’utilisateur à optimiser au maximum l’agencement des fenêtres, ce qui finit par consacrer une charge cognitive à un mauvais objectif : minimiser le réagencement des fenêtres
- S’il n’est pas nécessaire de basculer sans cesse entre plein écran et mode fenêtré, ou si l’on ne manque pas d’espaces de travail, c’est qu’il n’y a probablement pas tant de fenêtres ouvertes que cela
- Les dispositions en onglets, en pile, ainsi que les conteneurs imbriqués, sont considérés comme des palliatifs moins ergonomiques destinés à masquer le manque d’espace
- Sous Sway, il allait souvent jusqu’à 11 espaces de travail, au point d’ajouter aussi des raccourcis pour les espaces 11 à 20 faute de place
- Il lui arrivait de fermer des fenêtres pour économiser des espaces de travail, au risque de perdre le fil d’un projet
- Avec Niri, même en gardant ouverts 3 gros projets, plusieurs applications de chat, une vidéo YouTube et de quoi travailler sur 3 cours, il ne dépasse pas 5 espaces de travail
- La même configuration se retrouvait sous Sway jusqu’à l’espace de travail 15, l’obligeant à naviguer entre plusieurs espaces pour retrouver ce qu’il cherchait
Taille d’écran, DPI et contexte ultrawide
- Compte tenu de la diversité des tailles d’écran et de l’amélioration des performances de traitement, l’auteur estime qu’un gestionnaire de fenêtres en mosaïque traditionnel n’a pas besoin d’être le choix par défaut pour le workflow d’un power user
- Selon lui, le tiling traditionnel restreint artificiellement l’espace, impose des réagencements du contenu et s’adapte mal aux configurations de moniteurs non standard
- La raison principale de son passage à Wayland était le DPI mixte
- Lorsqu’on utilise ensemble un moniteur 4K et un moniteur FHD de même taille physique, la densité de pixels du 4K est environ 4 fois plus élevée
- Une fenêtre à largeur fixe en pixels peut donc paraître petite en 4K et grande en FHD
- Pour que les fenêtres aient une taille physique comparable, il faut appliquer une mise à l’échelle
- L’implémentation de X11 ne convenait pas bien à ce besoin à l’époque, alors que Wayland le prend en charge comme fonctionnalité de base
- X11 gère aussi difficilement la mise à l’échelle fractionnaire avec des facteurs non entiers comme 1.6, domaine où Wayland serait supérieur
- Il estime qu’un gestionnaire de fenêtres en mosaïque à défilement se marie bien avec les moniteurs ultrawide
- Avec Sway, une nouvelle fenêtre occupe toute la largeur d’un ultrawide, tandis que le modèle de Niri produit un tiling plus naturel et exploite mieux l’espace
- Il recommande aux utilisateurs d’un gestionnaire de fenêtres en mosaïque traditionnel basé sur Wayland, comme Sway, d’essayer directement Niri
- Pour retrouver une expérience de raccourcis clavier proche de Sway, on peut consulter cette configuration Niri rendue publique
1 commentaires
Avis de Hacker News
J’utilise Gnome et j’ouvre presque toutes les fenêtres en plein écran. De temps en temps, je fais une demi-fenêtre avec win+gauche/droite ; est-ce que ça fait de moi un homme des cavernes ?
Ces 20 dernières années, j’ai vu une bonne douzaine de gestionnaires de fenêtres en mosaïque présentés comme « l’avenir » apparaître puis disparaître. En pratique, les fonctionnalités qui améliorent vraiment beaucoup la productivité ont été intégrées depuis longtemps aux principaux gestionnaires de fenêtres, et les gestionnaires purement en mosaïque resteront probablement un produit de niche
Au final, pour s’en servir correctement, il faut y consacrer pas mal de temps et d’efforts ; le gain de productivité obtenu est, en réalité, incrémental, et il faut en plus accepter les aspérités propres à ce genre de produit de niche
C’est seulement un peu mieux que Gnome, mais les fenêtres ont plus de chances d’être au bon endroit dès le départ, et honnêtement, à quelle fréquence a-t-on vraiment besoin d’empiler des fenêtres les unes sur les autres sur l’axe z ?
Au début, je pensais qu’un canevas 2D infini, avec des raccourcis pour la position et le niveau de zoom comme la caméra d’un jeu de stratégie en temps réel, serait un meilleur gestionnaire de fenêtres. Mais après avoir essayé Niri, je suis convaincu que mon idée était trop compliquée et que Niri trouve exactement le bon équilibre entre fonctionnalités et utilisabilité
On dirait une technologie offerte par des extraterrestres du futur
J’utilise l’écran du portable, un 24 pouces horizontal au centre et un 24 pouces vertical ; Spotify/Teams/shell/Outlook sont en demi-écran vertical, les documents sur l’écran du portable, et l’IDE en plein écran sur l’écran principal. Je sépare aussi les bureaux virtuels pour la conception/recherche, le développement et l’usage personnel
Garder des tailles de moniteurs standard plutôt que de passer au 4K ou à l’ultrawide rend aussi le partage d’écran beaucoup plus simple
Petit reproche : le design d’UI actuel met 10 px de padding partout, si bien que la plupart des apps et pages doivent être en plein écran pour faire quoi que ce soit
Mais l’essentiel de mon besoin de tiling est dans le terminal, et tmux joue les héros
https://extensions.gnome.org/extension/4548/tactile/
Je viens d’i3, mais si on ne veut pas une extension de tiling complète et qu’on veut seulement un peu du confort du tiling, Tactile me semble être une solution très simple et utile
Si l’on vient d’un gestionnaire de fenêtres en mosaïque traditionnel, j’aimerais savoir à quoi ressemble le flux de travail au clavier
Ce qui m’importe le plus, ce sont des raccourcis fixes du genre Super+[0-9] pour aller vers une fenêtre précise, un workspace, en pratique un programme précis. Si c’est possible, et si cela résout en plus le problème de « gestion des workspaces » évoqué dans l’article, je basculerais immédiatement
Est-ce que ça a du sens d’utiliser les « workspaces » de cette manière dans Niri ? Par exemple, avoir un workspace pour le navigateur, un pour l’éditeur, un pour plusieurs terminaux ouverts, et vouloir passer instantanément du « navigateur » aux « terminaux ». Je préférerais qu’il n’y ait pas d’animation
Par exemple, le gestionnaire de mots de passe est sur le même workspace que le navigateur, et d’ordinaire hors de l’écran. Quand il faut créer un mot de passe, il est juste à côté. Je fais pareil avec les terminaux auxiliaires dont j’ai besoin à côté de l’éditeur de texte
En revanche, je sens qu’il me reste pas mal de mémoire musculaire issue des contraintes du tiling traditionnel. Par exemple, sur mon moniteur, si j’ouvre plus de trois terminaux, il faut que je passe à un nouveau workspace
Du coup, même quand ce n’est pas vraiment nécessaire, je bascule souvent vers un nouveau workspace, et je m’embrouille un peu sur ce qui se trouve où. Parfois, je me dis qu’une rupture plus nette avec l’ancienne façon de travailler serait peut-être plus facile
Malgré tout, j’aime beaucoup ce style de tiling proche de Niri. À mon avis, il élimine presque tous les défauts des gestionnaires de fenêtres en mosaïque
Globalement, je préfère largement i3 à Gnome, mais la douleur du « tout se redimensionne » est bien réelle. C’est particulièrement pénible quand on a beaucoup d’appels Zoom, car les « notifications » de Zoom semblent contourner les notifications système intégrées et être traitées chacune comme une fenêtre séparée, ce qui amplifie le problème
Il va falloir que j’essaie Niri
Ça ne m’a pas vraiment convenu. Il y a une bande de fenêtres qui se poursuit au-delà des bords de l’écran, et le fait de voir parfois seulement la moitié d’une fenêtre me provoquait une étrange anxiété et attirait constamment mon regard
Après environ deux mois, je suis revenu à Hyprland, un compositeur en mosaïque plus traditionnel où les fenêtres ne chevauchent pas les bords de l’écran
Cela dit, techniquement, Niri est très élégant. C’est une base de code Rust moderne, bien structurée, et il est facile à comprendre pour commencer à y toucher
Sur portable, selon la tâche, j’utilise toute la largeur ou une demi-largeur ; sur ultrawide, j’utilise un tiers de largeur, ou toute la largeur pour un éditeur avec des splits internes en colonnes
J’aime l’idée des gestionnaires de fenêtres en mosaïque, et j’ai utilisé i3 et Hyprland pendant pas mal de temps, mais curieusement je n’ai jamais réussi à m’y installer complètement et je finissais toujours par revenir à Xfce. Les vieilles habitudes ont la vie dure
Le moment où l’expérimentation s’arrête, c’est généralement quand le nombre de fenêtres dépasse un certain seuil. Si on n’a pas configuré assez en profondeur les espaces de travail, les layouts, etc., la gestion devient alors plus difficile
Je viens de lancer Niri et, en 10 minutes, il m’a semblé bien plus confortable que les autres gestionnaires de fenêtres en mosaïque. C’est immédiatement intuitif, et l’intégration de la souris est excellente
Il est trop tôt pour crier victoire, mais ça ressemble vraiment à ce que je voulais et dont j’avais besoin depuis des années. Je jugerai à quel point c’est bon au temps qu’il faudra avant que l’envie de revenir à Xfce me reprenne
Une configuration classique, ennuyeuse et indémodable de gestionnaire de fenêtres flottantes/environnement de bureau, avec un tiling léger et optionnel, s’est révélée optimale pour moi
Lecture intéressante. Tout le monde a son point de rupture
J’ai aimé le passage : « Bien sûr, au lieu de trouver quelle bibliothèque a introduit un changement cassant et de faire tourner git bisect pendant 4 heures, j’ai décidé de jeter par la fenêtre près de 10 ans de mémoire musculaire et d’améliorations de mon flux de travail »
Je suis aussi un utilisateur de longue date d’i3/Sway, et Niri est assez confortable. J’ai pu reprendre telle quelle l’essentiel de ma mémoire musculaire de Sway pour déplacer le focus ou les fenêtres. La stabilité est aussi très bonne, et ça fonctionne tout de suite très bien avec xwayland-satellite
Le plus gros problème, c’est que je « perds » constamment des fenêtres. J’ouvre une fenêtre au fond d’une pile profondément imbriquée, je passe à autre chose, puis j’oublie que je l’ai déjà ouverte
Ça arrive aussi dans une certaine mesure avec Sway, mais il est beaucoup plus facile de parcourir tous les espaces de travail
J’aimerais avoir quelque chose comme une « carte des fenêtres » liée à Alt-Tab
Pour info, j’imite la fonction run-or-raise avec un assemblage bizarre fait de niri IPC / bash / jq, et ça marche probablement mieux que le RoR d’origine. Ça parcourt les fenêtres correspondant à un appId donné, et s’il n’y en a pas, ça en lance une nouvelle
En y ajoutant rofi (wayland) pour faire une recherche floue parmi toutes les fenêtres ouvertes et s’y déplacer, le ressenti s’est nettement amélioré
Je fais partie des plus jeunes qui utilisent Hyprland, mais j’ai aussi essayé Niri brièvement et ça fonctionnait plutôt bien. Pour quelqu’un qui vient d’un flux de travail Windows moyen à un seul écran, ça colle très bien, surtout pour la plupart des tâches de bureau
Cela dit, je pense qu’une configuration de tiling plus complexe offre un plafond de productivité plus élevé. Si, comme l’auteur de l’article, on garde plus de 10 espaces de travail ouverts, alors il faut sans doute choisir Niri
Je me demande tout de même si l’augmentation de l’autonomie se maintient aussi pour les gens qui n’ouvrent que quelques fenêtres. Gagner 2 heures en changeant seulement de gestionnaire de fenêtres, c’est énorme
C’est l’une des principales raisons pour lesquelles j’ai du mal à basculer complètement. Je n’utilise pas non plus d’environnement de bureau, ni de fonctionnalités pour lesquelles un compositeur serait vraiment utile, donc de mon point de vue je vois très peu d’avantages
La seule chose qui me saute parfois aux yeux, ce sont les menus déroulants avec ombre des programmes gtk4 qui ne respectent pas le thème système que j’ai configuré, ce qui crée une bordure noire
Je n’ai pas encore essayé Niri, mais ça m’intéresse
Récemment, j’ai eu une assez bonne expérience de gestionnaire de fenêtres défilant dans GNOME avec l’extension PaperWM : https://github.com/paperwm/PaperWM
En revanche, comme il n’est pas construit à l’intérieur de l’environnement Gnome, il y perd un peu. Plusieurs choses que Gnome fournit « gratuitement » manquent dans Niri, et il faut trouver soi-même des outils de remplacement même pour des fonctions assez basiques
Parmi ce qui semble manquer : les notifications de bureau, un lanceur d’applications, un dock ou une liste des applications en cours d’exécution, et Xwayland pour lancer proprement les applications X11. Toutes ces fonctions doivent être fournies par des outils séparés non inclus dans Niri
Mon plus gros reproche est l’absence de synchronisation du presse-papiers entre X11 et Wayland. Gnome semble gérer ça automatiquement, mais pas Niri ; ne pas pouvoir copier/coller entre une appli Wayland et une appli X11 est très agaçant
Il existe des contournements, mais parmi ceux que j’ai essayés jusqu’ici, aucun n’a été assez confortable et fiable
Les gestionnaires de fenêtres défilants sont vraiment excellents. On obtient environ 80 % de la productivité d’un gestionnaire de fenêtres en mosaïque avec 20 % de l’effort
C’est étonnant qu’il ait fallu 30 à 40 ans pour trouver ça
Je suis aussi du genre à laisser les onglets ouverts dans le navigateur proliférer à l’infini jusqu’à devoir en mettre des centaines en favoris et tout fermer, donc ce paradigme entier semble vraiment ne pas me convenir
C’était du code Python bricolé qui permettait de yank des fenêtres dans et hors d’une pile par leur nom, et de mettre de côté la fenêtre la plus ancienne de la pile. En pratique, c’était un cache LRU pour fenêtres
Ça « marchait », mais si PaperWM avait existé quand j’étais étudiant, je pense que je me serais vraiment amusé avec
Il y a aussi des choses que seuls les gestionnaires de fenêtres flottantes font bien. J’aime ma mauvaise habitude de garder quelques documents épinglés en flottant à plusieurs endroits de l’écran, et de les consulter en parallèle sans trop les déplacer
Si vous voulez en apprendre davantage sur ce qui se passe sur le bureau Linux, je recommanderais à tout le monde d’essayer au moins un gestionnaire de fenêtres non standard
C’est en bricolant avec des gestionnaires de fenêtres en mosaïque que j’ai le plus appris sur Linux, plus qu’avec tout autre type de logiciel
Je ne sais pas si ma productivité a réellement augmenté, mais c’est une excellente expérience d’apprentissage, l’ergonomie est bonne, et la satisfaction de construire son propre environnement de bureau à partir de zéro est énorme