I3, le « tiling window manager » pour tous

Magazine
Marque
Linux Pratique
Numéro
74
|
Mois de parution
novembre 2012
|
Domaines


Résumé
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.

Body

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.

assistantconfigi3

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.

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.

bureauflottantesi3

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).

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.

dmenui3

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

modesi3

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.

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

    }

}

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...


Sur le même sujet

Apprenez à utiliser kubeadm

Magazine
Marque
GNU/Linux Magazine
Numéro
236
|
Mois de parution
avril 2020
|
Domaines
Résumé

Combien de fois m'avez-vous entendu dire « nous allons utiliser kubeadm pour faire ceci ou faire cela », et puis boum, un kubeadm init plus tard, tout est prêt ? Souvent ? Très souvent ? Trop souvent ? Alors pour une fois, pourquoi ne pas consacrer un article entier à ce merveilleux projet ?

Pipelines en folie avec GitLab

Magazine
Marque
GNU/Linux Magazine
HS n°
Numéro
107
|
Mois de parution
mars 2020
|
Domaines
Résumé

Il y a tout un tas d'expressions qui prêtent à réfléchir, comme : il n'y a rien de mieux que de ne rien faire, ou il n'y a que ceux qui ne font rien qui ne se trompent pas. C'est plus ou moins ce qui est mis en application dans une chaîne de CI/CD : au moindre commit, une foule de petits robots se mettent en branle pour faire tout le nécessaire au déploiement de nos applications. Et si nous nous penchions sur toute cette machinerie ?

Préparer un système GNU/Linux temps réel pour vos applications audio

Magazine
Marque
Linux Pratique
Numéro
118
|
Mois de parution
mars 2020
|
Domaines
Résumé

Pendant longtemps, je me suis amusé à compiler des noyaux Linux afin de paramétrer mes ordinateurs avec les options correspondantes au matériel les composant. Par la suite, j’ai découvert la possibilité d’optimiser encore plus le cœur de mes systèmes GNU/Linux avec les fonctionnalités dites « temps réel », notamment pour faire tourner des logiciels audio avec le serveur de son Jack.

Le DevOps dans le monde réel

Magazine
Marque
Linux Pratique
Numéro
118
|
Mois de parution
mars 2020
|
Domaines
Résumé

Cela fait environ cinq ans que les demandes de « DevOps » sont de plus en plus nombreuses dans le milieu professionnel. Souvent, lors des entretiens, on s'aperçoit que chaque client, ou presque, a sa propre définition du mot. Nous allons essayer de donner ici notre vision, tirée de notre expérience de terrain, de cette fonction.

Par le même auteur

Wyrd, l'agenda en console

Magazine
Marque
Linux Pratique
Numéro
76
|
Mois de parution
mars 2013
|
Domaines
Résumé
Vous débarquez sous Linux et vous êtes perdu dans la masse des solutions de planning pour cette plateforme ? Vous avez de mauvais souvenirs d'Outlook et visez un changement radical ? Vous n'avez pas d'interface graphique, mais des rendez-vous à honorer et il vous faut un assistant ? Si la ligne de commandes ne vous effraie pas, alors Wyrd est fait pour vous. Interface graphique en ncurses à Remind, elle offre beaucoup d'options de ce dernier...

Sage : le couteau suisse des maths pour Linux

Magazine
Marque
Linux Pratique
Numéro
75
|
Mois de parution
janvier 2013
|
Domaines
Résumé
Vous souvenez-vous des laboratoires de mathématiques avec Maple ou Mathematica, au lycée, à la fac ou en école d'ingénieur ? Calcul, manipulation de matrices, dessin de fonctions... Sage est un logiciel qui vous propose une expérience et des fonctionnalités similaires à ses concurrents, mais dans le monde de l'open source. Découverte de la version 5.

Le dessin assisté par ordinateur sous Linux avec LibreCAD et FreeCAD

Magazine
Marque
Linux Pratique
Numéro
74
|
Mois de parution
novembre 2012
|
Domaines
Résumé
En architecture ou en mécanique, les logiciels de dessin assisté par ordinateur en 2D et en 3D sont indispensables. À côté des poids lourds du secteur comme CATIA, AutoCAD ou SolidWorks, il existe des alternatives pour Linux. Petit tour d'horizon de quelques fonctionnalités de LibreCAD pour la 2D et de FreeCAD pour la 3D.

I3, le « tiling window manager » pour tous

Magazine
Marque
Linux Pratique
Numéro
74
|
Mois de parution
novembre 2012
|
Domaines
Résumé
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.

Quod Libet, la gestion musicale à votre image

Magazine
Marque
Linux Pratique
Numéro
73
|
Mois de parution
septembre 2012
|
Domaines
Résumé
Votre collection de musique dépasse allègrement les dix mille titres, et vous êtes confronté à un dilemme : quel gestionnaire musical choisir ? Vous composez avec les défauts des uns et des autres... Quod Libet vous laisse gérer votre musique à votre manière, sans sacrifier la rapidité.

Taskwarrior, rien que pour vos tâches !

Magazine
Marque
Linux Pratique
Numéro
72
|
Mois de parution
juillet 2012
|
Domaines
Résumé
Avec son interface minimaliste et sa flexibilité, Taskwarrior est un compagnon de choix pour effectuer le suivi de ses tâches au quotidien, se rappeler des échéances ou organiser des projets. Découverte de cet outil en ligne de commandes, dont la version 2.0 vient de sortir...