2 points par GN⁺ 2025-03-13 | 1 commentaires | Partager sur WhatsApp
  • 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
    • Contrairement à Sway/wlroots, Niri/Smithay est écrit en Rust
    • Le code lui a semblé plus accessible qu’il ne l’avait imaginé

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

 
GN⁺ 2025-03-13
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 ?

    • Vu la « street cred » de l’auteur, il faut aussi tenir compte du fait qu’il n’a encore que 20 ans. À 20 ans, beaucoup auront sans doute l’impression que leur patience pour bricoler toutes sortes de choses et perdre du temps avec des logiciels était quasi infinie, comparée à celle qu’ils ont après quelques années de vie professionnelle ou une fois qu’ils ont une famille
      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
    • J’étais un peu dans le même cas, mais j’ai découvert que mon flux de travail correspondait assez bien à un gestionnaire de fenêtres en mosaïque. J’utilisais le split pour les applis temporaires, par exemple pour passer une trentaine de secondes dans un terminal, et pour le reste je donnais à chaque appli un workspace ou un écran entier
      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
    • Je pense que la plupart des gens travaillent comme ça. J’ai vu un collègue faire du développement React sur un MacBook : les fenêtres étaient simplement à la taille et à l’emplacement où elles avaient été ouvertes, même pas en plein écran ; avec ma tête habituée à 3 moniteurs, je n’arrivais pas à comprendre
      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
    • Exactement pareil pour moi. Ce que je veux vraiment, c’est un Gnome un peu plus capable de faire du tiling, avec parfois un découpage en 3 ou 4 quand j’en ai besoin
      Mais l’essentiel de mon besoin de tiling est dans le terminal, et tmux joue les héros
    • Il y a sans doute des gens qui aimeraient cette extension
      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

    • C’est possible. Niri prend toujours en charge les workspaces numérotés, comme les gestionnaires de fenêtres à la Sway. Simplement, on peut aussi désormais faire défiler horizontalement
    • Avec Niri, on finit par l’utiliser un peu comme les autres gestionnaires de fenêtres en mosaïque, mais c’est agréable de pouvoir regrouper les applis auxiliaires avec l’appli principale au lieu d’avoir un workspace par appli
      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
    • Sur Sway, on peut essayer un tiling façon Niri, ou plus précisément PaperWM, avec papersway ; sur Hyprland, avec hyprscroller. J’utilise le second : par défaut, c’est presque identique au tiling classique, et les workspaces nommés sont possibles
      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
    • J’utilise i3 depuis un an, et je ressens tous les désagréments mentionnés dans cet article
      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
    • Sur Mac, pour un usage du type Super+X, je recommande aussi vivement rcmd
  • Ç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

    • J’ai réglé la largeur des colonnes de manière à ce que des fenêtres partielles apparaissent presque jamais sur les bords
      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
    • Sur un écran large, est-ce que ce serait mieux ou pire ? J’aime travailler en UWQHD
  • 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

    • Moi non plus, le tiling ne m’a jamais vraiment convenu. C’est peut-être parce que j’utilise surtout Linux sur un portable : l’écran est petit, donc à part le couper en deux, il est difficile de faire beaucoup de tiling, et même ça ne va pas très bien avec des choses comme un IDE
      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

    • Tu parles de quelque chose comme l’issue que j’avais liée auparavant ? https://news.ycombinator.com/item?id=43347909
      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é
    • Est-ce qu’alttab pourrait couvrir ton besoin ? Je l’utilise avec xmonad et ça marche bien. https://github.com/sagb/alttab
    • Hyprscroller, un plugin Hyprland qui fait quelque chose de similaire à Niri, a une fonction de type « expose ». Mais j’oublie souvent qu’elle existe
  • 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

    • Je fais encore des allers-retours entre Wayland et X11, et même sur mon vieux T14s de 2e génération, la combinaison X11+xmonad+pas de compositeur tient en moyenne 1,5 heure de plus
      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

    • Niri s’inspire de PaperWM et il est beaucoup plus fluide. Si PaperWM t’a plu, niri vaut le coup d’œil
      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

    • J’ai regardé la vidéo sur le site et, du point de vue de quelqu’un qui utilise assez souvent le glisser-déposer entre programmes, ça ressemble à un enfer absolu
      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
    • Quand j’utilisais i3, j’avais quelque chose de très similaire
      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

    • Quels sont, selon vous, les gestionnaires de fenêtres les plus intéressants ?