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

Toute votre infrastructure Debian en YAML avec DebOps

Magazine
Marque
GNU/Linux Magazine
Numéro
232
|
Mois de parution
décembre 2019
|
Domaines
Résumé

Administrer toutes les briques de son infrastructure Debian à l’aide d’un outil de gestion de configuration est une tâche complexe. Outre la quantité de code nécessaire, il faut représenter les interactions entre les logiciels de l’infrastructure. Projet communautaire basé sur Ansible, DebOps répond à cette problématique avec plus de 160 rôles liés les uns aux autres. De plus, les utilitaires fournis par le projet permettent de simplifier l’utilisation des rôles, ainsi que le respect des bonnes pratiques Ansible. Ceci en fait un outil unique pour automatiser vos infrastructures.

AWX, une WebUI pour vos jobs Ansible

Magazine
Marque
Linux Pratique
Numéro
116
|
Mois de parution
novembre 2019
|
Domaines
Résumé

Ansible c’est cool [1], ça vous apporte rapidité de déploiement, une grande souplesse grâce à ses modèles et bien d’autres avantages. Seulement, vous ne pouvez pas le laisser entre toutes les mains, l'oubli d’une option lors d'un déploiement et c’est tout votre infra qui risque d'être impactée.Le moment tant redouté est-il arrivé ? Êtes-vous devenu le Single Point of Failure de toute l'infrastructure ? Allez-vous devoir vous charger de tous les déploiements, et ce, jusqu’à ce que mort s’ensuive ? Non, non, non et non ! Vous n'allez pas vous laisser faire ! Et quoi de mieux pour mettre le pied à l'étrier de tout le monde qu'une simple WebUI ?

Du Dev au Sysadmin : Apprenez à concevoir et distribuer vos applications sur plusieurs plateformes avec CMake

Magazine
Marque
GNU/Linux Magazine
HS n°
Numéro
105
|
Mois de parution
novembre 2019
|
Domaines
Résumé

Vous avez souvent réalisé des applications que vous aimeriez tester et partager avec vos collègues, mais vous êtes toujours coincés au niveau de l’organisation des fichiers sources et du déploiement ? Vous tombez pile sur l'article qu’il faut pour résoudre ces problèmes.

Isolation de conteneurs : You Are NOT Safe

Magazine
Marque
GNU/Linux Magazine
Numéro
231
|
Mois de parution
novembre 2019
|
Domaines
Résumé

« We won’t be able to pretend that we can protect ourselves anymore. It’s a huge danger, a gigantic risk, but it’s worth it, if only we can learn to take care of each other, then this awesome destructive new connection won’t isolate us. It won’t leave us in the end so totally alone. »Cet extrait du manifeste « You are NOT safe » de Ryan Ray dans la série Halt and Catch Fire n'a jamais été autant d'actualité !

Du Dev au Sysadmin : Automatisez les tests et évitez les régressions

Magazine
Marque
GNU/Linux Magazine
HS n°
Numéro
105
|
Mois de parution
novembre 2019
|
Domaines
Résumé

L’intégration continue : faire en sorte que les tests soient lancés automatiquement à chaque fois qu’on pousse un commit sur un système de contrôle de versions et donc, réduire la charge mentale et éviter les bourdes qui cassent le master. Partager simplement entre tous les membres de l’équipe le statut des tests et garder un historique. Voilà tout ce à quoi peut servir l’intégration continue. Cet article sera l’occasion de voir en détail comment configurer deux outils d’intégration continue. Histoire que vous ne s-CI-ez plus la branche sur laquelle votre équipe est assise.

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