i3 (Français)
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. 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
Vous pouvez installer le paquet i3 avec Pacman.
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 -Syu i3
De nombreux paquets supplémentaires; version git (en), patchs, scripts, etc. sont disponibles via AUR.
Lancement
On peut soit utiliser un gestionnaire de connexions, soit utiliser startx en renseignant le fichier ~/.xinitrc
:
exec i3
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») etAlt
.
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 habitué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 + 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 premiè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 effectué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 redimensionner aisément des fenêtres, auquel cas toutes les fenêtres filles dépendantes seront redimensionné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
- Site officiel (en)
- Code source
- Ensemble de scripts et patches
- Bibliothèque pour des extensions i3
- Bibliothèque pour des extensions i3 en Ruby