I3, le « tiling window manager » pour tous

Magazine
Marque
Linux Pratique
Numéro
74
Mois de parution
novembre 2012
Spécialité(s)


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. 3 : 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. 4 : 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...



Article rédigé par

Par le(s) même(s) auteur(s)

Sage : le couteau suisse des maths pour Linux

Magazine
Marque
Linux Pratique
Numéro
75
Mois de parution
janvier 2013
Spécialité(s)
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
Spécialité(s)
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.

Quod Libet, la gestion musicale à votre image

Magazine
Marque
Linux Pratique
Numéro
73
Mois de parution
septembre 2012
Spécialité(s)
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é.

Les derniers articles Premiums

Les derniers articles Premium

La place de l’Intelligence Artificielle dans les entreprises

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

L’intelligence artificielle est en train de redéfinir le paysage professionnel. De l’automatisation des tâches répétitives à la cybersécurité, en passant par l’analyse des données, l’IA s’immisce dans tous les aspects de l’entreprise moderne. Toutefois, cette révolution technologique soulève des questions éthiques et sociétales, notamment sur l’avenir des emplois. Cet article se penche sur l’évolution de l’IA, ses applications variées, et les enjeux qu’elle engendre dans le monde du travail.

Petit guide d’outils open source pour le télétravail

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

Ah le Covid ! Si en cette période de nombreux cas resurgissent, ce n’est rien comparé aux vagues que nous avons connues en 2020 et 2021. Ce fléau a contraint une large partie de la population à faire ce que tout le monde connaît sous le nom de télétravail. Nous avons dû changer nos habitudes et avons dû apprendre à utiliser de nombreux outils collaboratifs, de visioconférence, etc., dont tout le monde n’était pas habitué. Dans cet article, nous passons en revue quelques outils open source utiles pour le travail à la maison. En effet, pour les adeptes du costume en haut et du pyjama en bas, la communauté open source s’est démenée pour proposer des alternatives aux outils propriétaires et payants.

Sécurisez vos applications web : comment Symfony vous protège des menaces courantes

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

Les frameworks tels que Symfony ont bouleversé le développement web en apportant une structure solide et des outils performants. Malgré ces qualités, nous pouvons découvrir d’innombrables vulnérabilités. Cet article met le doigt sur les failles de sécurité les plus fréquentes qui affectent même les environnements les plus robustes. De l’injection de requêtes à distance à l’exécution de scripts malveillants, découvrez comment ces failles peuvent mettre en péril vos applications et, surtout, comment vous en prémunir.

Bash des temps modernes

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

Les scripts Shell, et Bash spécifiquement, demeurent un standard, de facto, de notre industrie. Ils forment un composant primordial de toute distribution Linux, mais c’est aussi un outil de prédilection pour implémenter de nombreuses tâches d’automatisation, en particulier dans le « Cloud », par eux-mêmes ou conjointement à des solutions telles que Ansible. Pour toutes ces raisons et bien d’autres encore, savoir les concevoir de manière robuste et idempotente est crucial.

Les listes de lecture

8 article(s) - ajoutée le 01/07/2020
Découvrez notre sélection d'articles pour faire vos premiers pas avec les conteneurs, apprendre à les configurer et les utiliser au quotidien.
11 article(s) - ajoutée le 02/07/2020
Si vous recherchez quels sont les outils du DevOps et comment les utiliser, cette liste est faite pour vous.
8 article(s) - ajoutée le 02/07/2020
Il est essentiel d'effectuer des sauvegardes régulières de son travail pour éviter de perdre toutes ses données bêtement. De nombreux outils sont disponibles pour nous assister dans cette tâche.
Voir les 60 listes de lecture

Abonnez-vous maintenant

et profitez de tous les contenus en illimité

Je découvre les offres

Déjà abonné ? Connectez-vous