Apperçu rapide de configuration de Niri

Présentation

Niri est un gestionnaire de fenêtres à tuiles, ou tilling manager, et compositeur wayland.

Niri se démarque des autres gestionnaires de fenêtres à tuiles, par un défilement infini, une organisation en colonne et une navigation par scroll.

L’organisation en colonne, consiste à considérer que chaque application est dans sa colonne.

On passe d’une application à l’autre en scrollant horizontalement.

Les espaces de travail (ou workspace) sont, eux, verticaux.

Un espace de travail, va donc avoir un nombre infini de colonnes.

Sa configuration s’effectue via un fichier au format KDL

Lorsque l’on a plusieurs écran, Niri va gérer les espaces de travail, par écran.

Enfin, il y a systématiquement un espace vide à la droite de votre dernière fenêtre, dynamiquement.

Configuration

La configuration se fait au moyen d’un simple fichier text dont la grammaire est donc KDL. Le fichier de configuration par défaut est .config/niri/config.kdl Lorsque l’on modifie le fichier, il est automatiquement rechargé. Très utile pour s’assurer que ça fonctionne avant une catastrophe.

En cas d’erreur une commande permet de vérifier que la configuration est valide, et sinon de savoir ou ça coince :

1
niri validate

et pour travailler sur un fichier non utilisé :

1
niri validate -c /chemin/vers/un/autre/config.kdl

les workspaces

Par défaut il y a un seul workspace qui est toujours présent. La création d’un nouveau workspace est dynamique et illimité.

Il est possible d’instancier automatiquement, au démarrage d’une session, un nombre définit de workspace, et de leurs donner un nom.

Pour avoir 2 workspaces, nommés il suffit d’ajouter deux lignes comme suit :

1
2
workspace "firefox"
workspace "terminal"

Ça pourrait être :

1
2
workspace "1"
workspace "2"

En dehors des workspaces nommés, ils sont automatiquement supprimés lorsqu’il n’y a plus de fenêtre associée.

Pour ce déplacer d’un wokspace à l’autre, on peut définir les raccourcis claviers suivants :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
binds {
  // Aller sur un espace de travail
  Mod+Ampersand { focus-workspace "1"; }
  Mod+Eacute { focus-workspace "2"; }
  Mod+Quotedbl { focus-workspace "3"; }
  Mod+Apostrophe { focus-workspace "4"; }
  Mod+Parenleft { focus-workspace "5"; }
    
  // Aller à la colonne de gauche - avec fleche gauche
  Mod+Left { focus-column-left ; }
  // Aller à la colonne de droite - avec fleche droite
  Mod+Right { focus-column-right; }
  // Aller à la fenetre du dessus dans la même colonne
  Mod+Up { focus-window-up;}
  // Aller à la fenetre du dessous dans la même colonne
  Mod+Down { focus-window-Down; }
  // Aller au workspace du dessus - avec fleche haut
  Mod+Prior { focus-workspace-up;}
  // Aller au worspace du dessous - avec fleche bas
  Mod+Next { focus-workspace-down;}

  // Déplacer la fenêtre active vers l'espace de travail correspondant
  Mod+Ctrl+Ampersand { move-column-to-workspace "1"; }
  Mod+Ctrl+Eacute { move-column-to-workspace "2"; }
  Mod+Ctrl+Quotedbl { move-column-to-workspace "3"; }
  Mod+Ctrl+Apostrophe { move-column-to-workspace "4"; }
  Mod+Ctrl+Parenleft { move-column-to-workspace "5"; }
}

Le nom des touches peut se retrouver facilement en exécutant la commande wev.

Autres raccourcis à connaitre

Parmis les raccourcis intéressant il y a également :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
// Agrandit la colonne sur tout l'écran
Mod+F { maximize-column; }
// Tire la fenetre dans la colonne de droite sous la fenetre active
Mod+Comma { consume-window-into-column; }
// Sort la fenetre de la colonne partagée pour la placer dans sa propre colonne 
Mod+Semicolon { expel-window-from-column; }
// Centrer la colonne
Mod+C { center-column; }
// Vue d'ensemble
Mod+Tab { toggle-overview; }

Enfin, pour terminer :

1
2
3
4
5
// Quitter proprement Niri
Mod+Shift+E { quit; }
// Sortie d'urgence quand tout est figé
Mod+Escape allow-inhibiting=false { toggle-keyboard-shortcuts-inhibit;
}

Waybar

Il est possible d’intégrer à Waybar les workspaces.

J’ai défini 1 icone par workspace (le 1 et le 2 uniquement), une icone pour le workspace ayant le focus, une icone pour représenter un workspace vide et une icone pour les nouveaux workspaces.

La configuration sous Nixos ressemble à ça :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
"niri/workspaces" = {
  all-outputs = false;
  format = "{icon}";
  format-icons = {
 # icons des workspaces
    "1" = "🌐";
    "2" = "🪟";
    "focused"= "";
    "active"= "";
    "default"= "";
    "empty"= "";
  };
};

Nous avons terminé ce tour d’horizon de Niri. Il reste pas mal de fonctionnalités ou de comportement non évoqués, comme le déplacement des fenêtres à la souris, le redimensionnement des fenêtres, la taille par défaut, etc…

Généré avec Hugo
Thème Stack conçu par Jimmy