I3, le « tiling window manager » pour tous

Linux Pratique n° 074 | novembre 2012 | Jacques Haas
Creative Commons
  • Actuellement 0 sur 5 étoiles
0
Merci d'avoir participé !
Vous avez déjà noté cette page, vous ne pouvez la noter qu'une fois !
Votre note a été changée, merci de votre participation !
Et si vous utilisiez un gestionnaire de fenêtres minimaliste, comme les power users ? Mais vous vous dites qu'il faut apprendre un langage de programmation pour le configurer, que cela prend un temps fou... Qu'à cela ne tienne, i3 est un gestionnaire avec des fichiers de configuration en langage naturel et aux raccourcis clavier intuitifs. Présentation de la version 4.2.

1. Qu'est-ce qu'un tiling window manager ?

Un tiling window manager est un gestionnaire de fenêtres qui dispose les fenêtres en mosaïque, en utilisant tout l'espace disponible sur le bureau. De la sorte, le positionnement des fenêtres est fortement automatisé et ne nécessite pas l'utilisation de la souris : tout se contrôle au clavier ! Cette famille de gestionnaires de fenêtres se distingue de la famille des gestionnaires dynamiques, où les fenêtres sont flottantes, comme c'est le cas dans Openbox et dans la majorité des environnements de bureau (qui eux-mêmes reposent sur un gestionnaire de fenêtres).

2. Quels avantages ?

Le choix d'un gestionnaire de fenêtres par rapport à un environnement de bureau complet peut être dicté par des contraintes matérielles (les gestionnaires de fenêtres, moins gourmands en ressources que les environnements de bureau, tournent très bien sur des machines anciennes). Un gestionnaire de fenêtres, c'est aussi un moyen de construire son bureau avec juste les applications que l'on souhaite, pour un système plus rapide et avec moins de dépendances.

3. Pourquoi i3 ?

i3 est issu du gestionnaire de fenêtres wmii, qu'il rend plus léger et plus facile d'accès. i3 ne nécessite pas de connaître un langage de programmation particulier pour être configuré, contrairement à d'autres gestionnaires de fenêtres (awesome en Lua, xmonad en Haskell, etc.). De plus, sa configuration tient dans deux fichiers, comme nous le verrons plus loin.

4. Installation

Pour installer i3, dans Debian ou Ubuntu, on se place dans une console en mode administrateur :

# apt-get install i3

Ce méta-paquet installe le gestionnaire seul (i3-wm), la barre de statut (i3-status) et un utilitaire de verrouillage de l'écran (i3-lock).

Si vous disposez déjà d'un gestionnaire de démarrage (gdm, lightdm,...), il suffit de sélectionner i3 et d'entrer vos identifiants pour vous connecter. Si ce n'est pas le cas, avant de lancer une session avec i3, ouvrez votre fichier .xinitrc et insérez cette ligne :

exec i3

Si cela ne fonctionne pas et que vous utilisez les pilotes propriétaires Nvidia, ajoutez l'option --force-xinerama en fin de ligne.

Au redémarrage, il suffit de taper xinit ou startx et vous êtes dans i3.

5. La connexion

À la première ouverture de session, la fenêtre de configuration rapide s'affiche (Fig. 1). Vous devez choisir une touche de base pour l'ensemble des raccourcis du gestionnaire de fenêtres. La touche Windows gauche est un bon choix : beaucoup de raccourcis par défaut utilisent les touches de la moitié gauche du clavier. Quelle que soit la touche que vous choisirez, nous appellerons cette touche mod par la suite.

Fig. 1 : i3 lors du premier démarrage. L'assistant de configuration vous facilite la vie...

6. Quelques raccourcis de base

La plupart des raccourcis fonctionnent avec la touche mod accompagnée d'une autre touche. Par exemple, mod+Entrée ouvre un terminal.

Pour se déplacer d'une fenêtre à l'autre, on tape mod+flèche. Pour déplacer une fenêtre par rapport aux autres, on tape mod+shift+flèche.

Pour passer une fenêtre en plein écran, on tape mod+f (fullscreen). Pour fermer une fenêtre, c'est mod+shift+a (la position de la touche [A] du clavier français est la touche [Q] du qwerty, pour quit).

Pour quitter la session (pour appliquer des changements dans les fichiers de configuration par exemple), on tape mod+shift+e.

Vous avez accès à dix espaces de travail, numérotés en bas à gauche dans la barre d'état. N'apparaissent que l'espace en cours et les espaces qui contiennent des fenêtres. Pour se placer dans un espace, faites mod+chiffre, chiffre étant l'une des touches du pavé numérique, ou l'une des touches au-dessus de la rangée des lettres du haut du clavier (en qwerty, elles donnent directement les chiffres associés). Cela est valable de 1 à 9, mod+0 donnant accès à l'espace 10.

Note
Créer des raccourcis lanceurs d'applications

Vous aimez bien dmenu, mais vous travaillez toujours avec les mêmes applications et voulez les lancer encore plus vite ? Créez des raccourcis clavier dédiés ! Prenons l'exemple d'un explorateur de fichiers, Thunar. Ouvrez le fichier .i3/config et ajoutez :

bindsym $mod+t exec /usr/bin/thunar

À la prochaine ouverture de session, la combinaison mod+t lancera une fenêtre de Thunar. Le principe vaut pour toutes les applications : indiquez la combinaison voulue et la localisation du binaire.

7. Ajouter un fond d'écran avec feh

Par défaut, i3 affiche un simple fond noir au démarrage. Pas très accueillant ! Pour y remédier, nous pouvons utiliser feh.

# apt-get install feh

On ajoute ensuite dans .i3/config :

exec feh --bg-center '/chemin/vers/image'

Au prochain démarrage, feh utilisera le fichier spécifié comme fond d'écran (bg pour background) et centrera l'image (center). Bien sûr, feh n'est qu'un choix parmi d'autres : Nitrogen propose un service similaire.

Fig. 2 : Exemple de fond d'écran utilisé avec i3, et deux fenêtres flottantes. L'image (Purple Eidolon) provient de la galerie Gnome Art.

8. Créer une fenêtre

Quand vous ouvrez une fenêtre (ou conteneur) dans un espace vide, celle-ci occupe l'ensemble de l'espace disponible. Par défaut, si vous ouvrez une deuxième fenêtre dans ce même espace, celle-ci sera placée à droite de la première : l'écran sera coupé en deux.

Pour créer une fenêtre en-dessous de la fenêtre active, on passe en mode par défaut avec mod+e, on presse mod+v (vertical), puis on ouvre la fenêtre voulue : un terminal, une application (voir plus loin). Pour placer une fenêtre à côté de la fenêtre active, on remplace mod+v par mod+h (horizontal).

Note
dmenu, le lanceur d'applications minimaliste

Avec le méta-paquet de base, i3 est assez nu : les seuls moyens de lancer des applications sont d'ouvrir une fenêtre de terminal et de programmer des raccourcis (voir plus loin). Il y a plus simple : dmenu, un lanceur qui apparaît à la demande sous forme de barre en haut de l'écran. Pour installer dmenu :

# apt-get install dmenu

Son lancement est déjà prévu par la configuration de i3, qui lui réserve le raccourci mod+d.

Fig. 4 : dmenu est une simple barre en haut de l'écran. Il permet d'appeler les applications.

La recherche incrémentale affiche les applications correspondantes : on peut taper un nom complet jusqu'à n'avoir qu'un résultat et taper sur Entrée, ou se déplacer avec les flèches gauche ou droite dans la sélection proposée puis appuyer sur Entrée. Cela vous paraît alambiqué ? Ce n'est qu'une impression. Le processus demande juste un temps d'adaptation.

9. Changer de mode d'affichage

Par défaut, les fenêtres sont placées côte-à-côte. On peut aussi les afficher sous forme d'onglets sur une ligne en haut de l'écran, pour en garder une seule à l'écran à la fois. Pour cela, tapez mod+z. Pour voir les en-têtes de fenêtre s'entasser sous forme de pile, tapez mod+s. Pour revenir au mode par défaut, tapez mod+e.

Pour changer le comportement par défaut, il suffit d'ajouter une ligne dans le fichier .i3/config. Pour l'affichage en onglets :

workspace_layout tabbed

Pour l'affichage en tuiles :

workspace_layout stacking

Fig. 3 : Dans i3, l'affichage des fenêtres par défaut (à gauche), en pile (au milieu) et en onglets (à droite).

10. Faire flotter les fenêtres, modifier leur taille

i3 est un tiling window manager dynamique, c'est-à-dire qu'il gère aussi bien la disposition des fenêtres « en tuiles » que les fenêtres flottantes. Pour faire flotter une fenêtre, appuyez sur mod+shift+Espace. Vous pouvez déplacer la fenêtre de manière classique à la souris en maintenant le clic gauche sur la bordure supérieure. En maintenant enfoncée la touche mod, vous pouvez faire de même, mais en cliquant n'importe ou dans la fenêtre.

Pour redimensionner une fenêtre flottante, on entre dans le mode Resize avec mod+r. Ensuite, shift+flèche augmente la taille de la fenêtre dans la direction désirée, flèche la rogne sur le côté voulu. Pour sortir du mode Resize, on appuie sur Entrée. On peut aussi cliquer sur les bordures de la fenêtre.

Note
i3bar, la barre d'état

Sous les fenêtres, on trouve i3bar, la barre d'état de i3. Elle a plusieurs fonctions. C'est elle qui affiche les boutons des espaces de travail utilisés, les icônes de certaines applications ouvertes (Skype, Pidgin), mais aussi une ligne de statut qui affiche différents renseignements : l'espace libre sur le disque dur, l'état de la connexion réseau, le niveau de la batterie, ou encore l'heure.

Comme pour tout le reste dans i3, la ligne d'état est intégralement configurable. C'est là que i3status entre en scène. Ce programme offre un choix de modules à afficher. i3status possède son propre fichier de configuration, .i3status.conf, dont voici un extrait en exemple :

general {

                   colors = true

                   interval = 5

           }

           order += "ipv6"

           order += "disk /"

           order += "run_watch DHCP"

           order += "run_watch VPN"

           order += "wireless wlan0"

           order += "ethernet eth0"

           order += "battery 0"

           order += "cpu_temperature 0"

           order += "load"

           order += "time"

Suit un paragraphe de configuration pour chacun des modules ci-dessus. Pour désactiver les couleurs, il suffit de changer le paramètre de colors = true en false : tout s'affiche alors en blanc. L'option interval définit le temps entre deux rafraîchissements des données affichées, en secondes.

On notera l'absence d'indicateur de RAM ou de charge du processeur. Pour ceux d'entre vous qui souhaiteraient un rapport d'état plus conséquent, vous pouvez vous tourner vers des solutions comme Conky, qui s'affichent directement sur le bureau.

Enfin, pour changer la couleur d'arrière-plan et celle de la police, rendez-vous dans le fichier .i3/config :

bar {

    status_command i3status

}

Sous la ligne status_command et alignée avec celle-ci, ajoutez par exemple :

    colors {

        background #000000

        statusline #ffffff

        }

Cela définit un arrière-plan noir pour une police blanche, mais toutes les couleurs de la palette sont possibles ! On peut aussi changer les couleurs utilisées pour les boutons d'espace de travail en ajoutant des lignes dédiées (voir « Changer l'aspect des fenêtres »).

11. Changer l'aspect des fenêtres

Le thème par défaut vous insupporte ? Pas de problème. Il suffit de changer les couleurs dans le fichier .i3/config, en ajoutant des lignes de la forme :

colorclass border background text indicator

La classe de couleur correspond au type de fenêtre dont on veut changer la couleur (client.focused pour la fenêtre active, client.unfocused pour les fenêtres inactives, par exemple). Les quatre entrées suivantes sont les couleurs pour la bordure, l'arrière-plan, le texte et la bordure séparant deux fenêtres d'un même conteneur. Un exemple pour les couleurs par défaut de la fenêtre active :

client.focused #4c7899 #285577 #ffffff #2e9ef4

Le principe est le même pour les boutons d'espace, avec les catégories focused_workspace, active_workspace, inactive_workspace et urgent_workspace. Par défaut, on a :

bar {

    colors {

 background #000000

 statusline #ffffff

 focused_workspace #4c7899 #285577 #ffffff

 active_workspace   #333333 #5f676a #ffffff

 inactive_workspace #333333 #222222 #888888

 urgent_workspace   #2f343a #900000 #ffffff

    }

}

Note
i3lock, pour verrouiller votre écran

i3lock se lance simplement via dmenu : mod+d i3lock. L'affichage bascule alors sur un écran blanc. Pour débloquer l'ordinateur, il suffit de taper le mot de passe utilisateur. Bien qu'il n'y ait pas de champ de saisie, un pictogramme vous informe que le mot de passe est vérifié, puis débloque l'écran.

Vous pouvez choisir la couleur de l'écran en lançant i3lock depuis un terminal avec l'option -c :

$ i3lock -c ff0000

pour avoir du rouge. De la même manière, on lance une image en ajoutant l'option -i (fonctionne avec un fichier .png) :

$ i3lock -i /chemin/vers/image.png

Conclusion

Nous avons passé en revue le fonctionnement basique de i3. Ses raccourcis faciles et sa configuration aisée en font un candidat idéal pour équiper une station de travail minimaliste, une machine vieillissante, ou pour ceux qui souhaitent maîtriser tous les paramètres d'un environnement qui répond totalement au clavier.

On apprécie vite de ne pas déplacer sa main vers la souris à tout propos. Une bonne piste pour gagner en efficacité et en légèreté, sans se prendre les pieds dans les langages de programmation !

Pour aller plus loin, penchez-vous sur le guide de l'utilisateur pour i3 : http://i3wm.org/docs/userguide.html. Une mine d'informations très complète et accessible aux néophytes. On y trouve d'autres personnalisations, par exemple comment renommer les espaces de travail, et bien plus encore...