i3

De ArchwikiFR


i3 est un gestionnaire de fenêtres pavant, écrit « from scratch », sous license BSD. Principalement conçu pour un public expérimenté, il a pour origine wmii (en). C'est, en effet, de tentatives d'améliorations de wmii qu'i3 est né.

Parmi les principaux objectifs ; un code bien écrit et documenté, l'utilisation de xcb, la gestion de plusieurs moniteurs, l'usage d'arbres plutôt que de colonnes pour gérer des données, ne pas rendre obsolètes les configurations sans changement majeur de version ou encore n'implémenter de fonctions que si elles bénéficient à un large nombre.


Installation

i3 est présent dans le dépôt community et peut donc être installé via pacman :

pacman -S i3-wm

i3 est aussi disponible sous la forme d'un ensemble de paquets (en), incluant, en sus d'i3 lui-même, un verrou d'écran et deux programmes relatifs à la barre de statut i3bar.

pacman -S i3
Note : Notez toutefois que l'installation ainsi proposée indiquera un conflit entre i3-wm et i3-gaps et que c'est ce dernier, un fork de i3 qui sera installé.

De nombreux paquets supplémentaires ; version git (en), patchs, scripts, etc. sont disponibles via AUR.

Lancement

Pour lancer i3 depuis un tty, ajoutez à votre .xinitrc

exec i3

Alternativement, i3-wm inclus également i3.desktop en tant que gestionnaire de connexion.


Wizard

Suite à la première exécution d'i3, une aide à la configuration apparaîtra. Elle proposera :

  • de créer un fichier de configuration ~/.i3/config (il est recommandé d'accepter)
  • de choisir la « $mod key » qui sera utilisée. Il s'agit de la touche à l'origine de l'essentiel des appels d'action. Choix est donné entre Win (aussi appelée couramment « super ») et Alt.


Configuration

Elle s'effectue à l'aide d'un unique fichier. Copiez etc/i3/config dans ~/.i3/config ou ~/.config/i3/config et éditez-le. L'édition ne nécessite pas de compétence particulière ou de connaissance d'un quelconque langage de programmation. Pour plus d'informations, référez-vous au guide (en).


bépo

i3 utilise un système de bindsym qui remplace les bindcode, c'est-à-dire que les actions ne sont pas liées aux « valeurs » des touches (« a » par exemple) mais à leur position sur le clavier, dépendant donc de la disposition du clavier, notamment en bépo. Les utilisateurs habutués à l'ergonomie de i3 n'auront pas de difficulté à s'adapter, les autres préféreront éviter le [I3|Wizard] et directement copier le fichier de configuration afin d'éviter la prise en compte de la disposition du clavier.

Voir également ce retour d'expérience sur bépo.fr.


Utilisation

i3 utilise deux méthodes particulières de gestion, comparé aux environnements de bureau traditionnels : l'usage intensif de raccourcis clavier et une gestion dynamique des fenêtres.


Raccourcis

La conception d'i3 vise à se passer de la souris et effectuer la totalité des actions via le clavier. Si cette méthode est plus véloce, elle requiert cependant l'apprentissage d'un certain nombre de raccourcis.

Parmi les fondamentaux :

Action Touche
Lancer un terminal $mod + Entrée
Diviser la prochaine fenêtre horizontalement $mod + h
Diviser la prochaine fenêtre verticalement $mod + v
Basculer la fenêtre en plein écran / quitter le plein écran $mod + f
focus à gauche $mod + j
focus à droite $mod + m
focus en haut $mod + l
focus en bas $mod + k
Déplacer une fenêtre à gauche $mod + shift + j
Déplacer une fenêtre à droite $mod + shift + m
Déplacer une fenêtre en haut $mod + shift + l
Déplacer une fenêtre en bas $mod + shift + k
Accès au mode de redimensionnement des fenêtres $mod + r
Changer de bureau $mod + 0 - 9
Déplacer la fenêtre du focus vers un autre bureau $mod + shift + 0 + 9
Mode par défaut (pavant) $mod + e
Mode "pile" (stacking) $mod ou s
Mode onglets $mod + w
Activer / désactiver le mode flottant $mod + shift + space
Ouvrir le lanceur d'application (défaut = dmenu) $mod + d
Mettre à jour le fichier de configuration de i3 $mod + shift + c
Relancer i3 $mod + shift + r
Quitter i3 $mod + shift + e


Gestion des fenêtres

La gestion des fenêtres s'effectue par division de l'espace en éléments de plus petites tailles, à travers notamment un système de containers. i3 étant pavant, la prenière fenêtre ouverte A occupera tout l'espace (i.e. l'intégralité du container) et prendra au choix une caractérisation horizontale ou verticale. Lorsqu'une nouvelle fenêtre B est créée, elle prendra la moitié de l'espace, orientée horizontalement ou verticalement suivant la caractérisation, réduisant donc la taille de A de moitié. La création d'une nouvelle fenêtre C pourra ensuite se faire en usant toujours du container originel comme parent, divisant l'espace en parts égales. En revanche, si la division est effectée avec A ou B comme parent, alors seul l'espace occupé par cette fenêtre sera divisée en deux, l'autre fenêtre demeurant inchangée. Le focus détermine quelle fenêtre sera divisé. Une légère coloration et une discrète épaisseur supplémentaire le long d'un bord indique si la prochaine division sera horizontale ou verticale. La combinaison $mod + a permet d'effectuer un focus parent.

Toutes les fenêtres sont déplaçables et peuvent ainsi fournir une très grande variété d'agencement. Il est également possible de redimmensionner aisément des fenêtres, auquel cas toutes les fenêtres filles dépendantes seront redimmensionnsées au passage. i3 utilise également un système de bureaux et il est très simple d'y « envoyer » une fenêtre ou un groupe afin de récupérer de l'espace ou de permettre un vis-à-vis.

Pour de plus amples informations, reportez-vous au guide (en) ou à cette vidéo qui explique notamment le rôle des containers.


Lanceur d'application

i3 utlise dmenu par défaut. Un raccourci est prévu à cet effet : $mod + d. dmenu doit être installé séparément si vous n'avez pas installé l'ensemble de paquets.


Liens

Forum archlinux.org

Vidéos