/*
 * https ; gemini ;
 * tout ; log ; twtxt ;
 * à propos (@) ; ;
 */

Visite guidée de dwm

Je vous propose de faire ensemble le tour de l'excellent gestionnaire de fenêtres dwm.

Afin de partager les mêmes points de repère, je vous suggère de récupérer la même configuration que celle utilisée dans le tutoriel. Cette dernière est prête pour les claviers azerty ;)

Suivez l'étape suivante. Ne vous inquiétez pas, je fais en sorte de ne pas modifier votre système : tous sera installé dans votre dossier personnel.

Pour les pressés, vous voudrez peut-être passer directement à la vidéo :

Configuration utilisée

dmenu

Pour profiter de dwm, installez le petit outil "dmenu" via votre gestionnaire de paquets, ou en le compilant ainsi :

curl -O https://dl.suckless.org/tools/dmenu-5.0.tar.gz
tar xvzf dmenu-5.0.tar.gz
cd dmenu-5.0
sed -i /^#FREETYPEIN/s/^#// config.mk # facultatif, pour OpenBSD seulement 
make
make install PREFIX=$HOME MANPREFIX=$HOME/man/
echo $PATH | grep -q $HOME/bin || echo 'PATH=$PATH:~/bin' >> $HOME/.profile

dwm pré-configuré

La configuration utilisée modifie les raccourcis claviers pour fonctionner avec un clavier azerty. Autrement dit, les touches "chiffres" en haut du clavier sont accessibles avec &, é, ", ', (, ... D'autres extensions mineures sont intégrée par rapport à une version de dwm par défaut. Je vous invite à lire le paragraphe "Exemple" du "guide à la prx" pour obtenir des détails sur les quelques petits modifications apportées (voir lien à la fin de page).

Par contre, ici, on compile : dwm se configure directement en éditant les sources, aussi utiliser un gestionnaire de paquets est inutile.

Voici un lien direct vers le fichier de configuration pour les plus habitués :

config.h

Voici la liste des commandes à entrer pour compiler et installer dwm :

curl -O https://dl.suckless.org/dwm/dwm-6.2.tar.gz
tar xvzf dwm-6.2.tar.gz
cd dwm-6.2
sed -i /^#FREETYPEIN/s/^#// config.mk # facultatif, pour OpenBSD seulement
curl -o config.h https://si3t.ch/pub/dwm-config.h
make
make install PREFIX=$HOME MANPREFIX=$HOME/man/
echo $PATH | grep -q $HOME/bin || echo 'PATH=$PATH:~/bin' >> $HOME/.profile

session

Voici les lignes à copier dans votre fichier "~/.xsession" (ou ".xinitrc") pour démarrer dwm de la même façon :

. $HOME/.profile
xsetroot -solid steelblue &
while true; do xsetroot -name " $(date +"%H:%M") "; sleep 60; done &
dwm

Une simple couleur de fond, l'heure en haut à droite et c'est tout :)

(pour l'instant ;))

Dernière remarque

C'est le terminal "st" qui est utilisé avec cette configuration. Vous voudrez peut-être le remplacer par "xterm" ou autre selon vos préférences. Éditez le fichier "config.h" à la ligne suivante :

static const char *termcmd[]  = { "st", NULL };

Accrochez vos ceintures

Nous voici devant notre écran, pour l'instant vide.

Presque vide : on peut voir une barre en haut de l'écran. À gauche, ce sont les tags, et nous voyons apparemment le premier puisqu'il est coloré. À droite, le status nous indique l'heure.

 +---------------------------+-----+-----------------------------+--------+
 |                           |     |                             |        | 
 |[1] 2  3  4  5  6  7  8  9 | []= |                             | status |
 |                           |     |                             |        |
 +---------------------------+-----+-----------------------------+--------+
 |                                                                        |
 |                                                                        |
 |                                                                        |
 |                                                                        |
 |                                                                        |
 |                                                                        |
 |                                                                        |
 |                                                                        |
 |                                                                        |
 |                                                                        |
 |                                                                        |
 |                                                                        |
 |                                                                        |
 |                                                                        |
 |                                                                        |
 |                                                                        |
 |                                                                        |
 +------------------------------------------------------------------------+

Ouvrons une fenêtre, par exemple un terminal. Le plus simple est d'utiliser le raccourci "Alt-Shift-Entrée".

La fenêtre occupe tout l'espace disponible.

Un petit carré est apparu sur le tag 1, montrant qu'une fenêtre a cette étiquette.

Le titre de la fenêtre apparaît en haut, de sorte que l'on sait laquelle est sélectionnée.

 +---------------------------+-----+-----------------------------+--------+
 |▪                          |     |                             |        | 
 |[1] 2  3  4  5  6  7  8  9 | []= | titre de la fenêtre active  | status |
 |                           |     |                             |        |
 +---------------------------+-----+-----------------------------+--------+
 |                                                                        |
 |                                                                        |
 |                                                                        |
 |                                                                        |
 |                                                                        |
 |                                                                        |
 |                                                                        |
 |                                                                        |
 |                                                                        |
 |                                                                        |
 |                                                                        |
 |                                                                        |
 |                                                                        |
 |                                                                        |
 |                                                                        |
 |                                                                        |
 |                                                                        |
 +------------------------------------------------------------------------+

On peut lancer une commande dans ce terminal, par exemple "top".

Donnons maintenant à cette fenêtre le tag 2 : Alt-Shift-2.

Cette dernière n'a pas disparu : remarquez le petit carré au dessus du "2".

Affichons le tag 2 avec Alt-2 : revoilà notre terminal avec "top".

Retournons sur l'affichage du tag 1 puis ouvrons un nouveau terminal.

 +---------------------------+-----+-----------------------------+--------+
 |▪  ▫                       |     |                             |        | 
 |[1] 2  3  4  5  6  7  8  9 | []= | titre de la fenêtre active  | status |
 |                           |     |                             |        |
 +---------------------------+-----+-----------------------------+--------+
 |                                                                        |
 |                                                                        |
 |                                                                        |
 |                                                                        |
 |                                                                        |
 |                                                                        |
 |                                                                        |
 |                                                                        |
 |                                                                        |
 |                                                                        |
 |                                                                        |
 |                                                                        |
 |                                                                        |
 |                                                                        |
 |                                                                        |
 |                                                                        |
 |                                                                        |
 +------------------------------------------------------------------------+

Cette fois-ci, juste pour l'exemple, on utilisera dmenu disponible par le raccourci Alt-p.

Entrons les premières lettres du mot "xterm" puis validons avec Entrée.

Hop, voilà notre nouveau terminal. On peut écrire dedans afin de l'identifier ensuite.

Ouvrons maintenant le navigateur Firefox avec la même méthode : Alt-p, "fire..." puis entrée.

Tiens, il n'apparaît pas.

Cependant, un petit marqueur est apparu au dessus du tag 3. C'est tout à fait normal, la configuration proposée colle l'étiquette 3 à Firefox. Notez que par défaut, c'est le numéro 9, mais je trouve le 3 plus facile à atteindre d'une seule main.

On pourrait afficher Firefox avec Alt-3...

Toutefois, j'aimerais avoir à l'écran toutes les fenêtres précédemment ouvertes. On va donc demander d'afficher les fenêtres avec le tag 2 et 3 avec les raccourcis Alt-Ctrl-2 et Alt-Ctrl-3.

Désormais, l'écran ressemble à ça :

 +---------------------------+-----+-----------------------------+--------+
 |▪  ▫  ▫                    |     |                             |        | 
 |[1  2  3] 4  5  6  7  8  9 | []= | titre de la fenêtre active  | status |
 |                           |     |                             |        |
 +---------------------------+-----+-----------------------------+--------+
 |                                       |                                |
 |                                       |                                |
 |                                       |                                |
 |                                       |             stack              |
 |                                       |                                |
 |                                       |                                |
 |                                       |                                |
 |                                       |                                |
 |             master                    |--------------------------------|
 |                                       |                                |
 |                                       |                                |
 |                                       |                                |
 |                                       |             stack              |
 |                                       |                                |
 |                                       |                                |
 |                                       |                                |
 |                                       |                                |
 +------------------------------------------------------------------------+

La zone la plus grande à gauche s'appelle "master", la partie divisée à droite "stack".

Vous remarquerez qu'aucune fenêtre ne vient en superposer une autre pour en cacher le contenu : n'est-ce pas agréable?

Jouons un peu : appuyez plusieurs fois sur Alt-h pour réduire la taille du master :

 +---------------------------+-----+-----------------------------+--------+
 |▪  ▫  ▫                    |     |                             |        | 
 |[1  2  3] 4  5  6  7  8  9 | []= | titre de la fenêtre active  | status |
 |                           |     |                             |        |
 +---------------------------+-----+-----------------------------+--------+
 |                          |                                             |
 |                          |                                             |
 |                          |                                             |
 |                          |                                             |
 |                          |                                             |
 |                          |                                             |
 |                          |                                             |
 |                          |                                             |
 |                          |---------------------------------------------|
 |                          |                                             |
 |                          |                                             |
 |                          |                                             |
 |                          |                                             |
 |                          |                                             |
 |                          |                                             |
 |                          |                                             |
 |                          |                                             |
 +------------------------------------------------------------------------+

Appuyez sur Alt-l pour l'agrandir à nouveau.

Maintenant, on peut augmenter le nombre de fenêtres qu'il peut y avoir dans le master avec Alt-i :

 +---------------------------+-----+-----------------------------+--------+
 |▪  ▫  ▫                    |     |                             |        | 
 |[1  2  3] 4  5  6  7  8  9 | []= | titre de la fenêtre active  | status |
 |                           |     |                             |        |
 +---------------------------+-----+-----------------------------+--------+
 |                                       |                                |
 |                                       |                                |
 |                                       |                                |
 |                                       |                                |
 |                                       |                                |
 |                                       |                                |
 |                                       |                                |
 |                                       |                                |
 |---------------------------------------|                                | 
 |                                       |                                |
 |                                       |                                |
 |                                       |                                |
 |                                       |                                |
 |                                       |                                |
 |                                       |                                |
 |                                       |                                |
 |                                       |                                |
 +------------------------------------------------------------------------+

Ou en réduire le nombre avec Alt-u (par défaut, c'est Alt-d, mais le "d" est inutilement loin du "i"). Avec la configuration proposée, vous pouvez remettre dans son étant initial le nombre de fenêtres dans le master avec Alt-o.

J'aimerais maintenant placer Firefox dans la zone master et laisser "top" ainsi que l'autre terminal dans le stack.

On va donc aller sélectionner la fenêtre de Firefox avec Alt-j ou Alt-k.

Pour le passer dans le master, on entre Alt-Entrée. Appuyez une nouvelle fois sur Alt-Entrée pour le renvoyer dans le stack.

Facile non ?

Maintenant, changeons un peu d'activité.

Affichons seulement le tag 4 : Alt-4

Ouvrons Thunderbird : Alt-p, "thund...", Entrée.

Ouvrons avec le même tag un lecteur de flux RSS par exemple :

Alt-Shift-Entrée, "newsboat".

Hum... Les fenêtres gagneraient à être plus grandes. C'est tout de même pratique de pouvoir lire tout le contenu d'une fenêtre.

Passons alors en mode "monocle" : Alt-z. Le raccourci par défaut est Alt-m, mais le "m" est loin de Alt à mon goût. À la place, Alt-m déplace le focus dans la zone master dans la configuration proposée.

Hop, la fenêtre active est maintenant en grand. On peut choisir d'afficher Thunderbird ou newsboat vec Alt-j ou Alt-k, voire même en roulant la molette de la souris sur le titre d'une fenêtre.

À ce stade, l'écran ressemble à ceci (vous aurez remarqué un nouveau symbole en haut à gauche du titre de la fenêtre) :

 +---------------------------+-----+-----------------------------+--------+
 |▫  ▫  ▫  ▪                 |     |                             |        | 
 | 1  2  3 [4] 5  6  7  8  9 | [2] | titre de la fenêtre active  | status |
 |                           |     |                             |        |
 +---------------------------+-----+-----------------------------+--------+
 |                                                                        |
 |                                                                        |
 |                                                                        |
 |                                                                        |
 |                                                                        |
 |                                                                        |
 |                                                                        |
 |                                                                        |
 |                                                                        |
 |                                                                        |
 |                                                                        |
 |                                                                        |
 |                                                                        |
 |                                                                        |
 |                                                                        |
 |                                                                        |
 +------------------------------------------------------------------------+

Pour basculer rapidement de la consultation de mes mails avec Thunderbird vers l'activité précédente avec Firefox/top/terminal, appuyons sur Alt-Tab.

Hop, on retrouve la vue précédente.

Rappuyez sur Alt-Tab : on retrouve Thunderbird. \o/

Cette fonctionnalité est très pratique pour passer d'une vue à l'autre.

Pour finir, on va jouer avec la souris.

Ouvrons un terminal : Alt-Shift-Entrée.

Écrivons "5" dedans pour le repérer plus tard.

Alors qu'il est sélectionné, cliquons sur le tag "5" tout en appuyant sur Alt.

Hop, ce terminal a maintenant l'étiquette 5.

Maintenant, ouvrons un autre terminal puis écrivons "coucou" dedans pour le repérer plus tard.

Donnons-lui le tag 6 comme on l'a fait avant : Alt-clic gauche sur le tag 6.

On va donner ajouter à Thunderbird l'étiquette 5 et 6 pour qu'il apparaisse aussi lorsqu'on sélectionne ces tags. Après avoir sélectionné Thunderbird, cliquez droit sur les tags 5 et 6 tout en maintenant Alt appuyé. C'est exactement comme entrer Alt-Shift-Ctrl-5 et Alt-Shift-Ctrl-6.

Repassons en mode tiling avec Alt-t ou en cliquant sur le symbole "[4]" qui devient "[]=".

Choisissez le tag 5 en cliquant gauche dessus : vous voyez votre terminal "5" et Thunderbird. (Comme Alt-[n]).

Choisissez le tag 6 en cliquant DROIT dessus : vous voyez votre terminal "5", le terminal "coucou" et Thunderbird. À chaque fois qu'on clique-droit sur un tag, on en affiche les fenêtres. (Comme Alt-Ctrl-[n]). Génial non ? :)

Avec toutes ces fenêtres d'ouvertes, je ne sais plus où est le terminal du départ, celui avec la commande "top".

Dans ce cas, cliquons-droit sur tous les tags contenant une fenêtre (Repérables par le petit carré ▪ ou ▫ selon si la fenêtre active a ce tag), ou bien carrément sur tous les tags. Cela équivaut à appuyer sur Alt-0 pour afficher toutes les fenêtres.

Voilà à quoi dwm ressemble :

 +---------------------------+-----+-----------------------------+--------+
 |▫  ▫  ▫  ▪  ▪  ▪           |     |                             |        | 
 |[1  2  3  4  5  6  7  8  9]| []= | titre de la fenêtre active  | status |
 |                           |     |                             |        |
 +---------------------------+-----+-----------------------------+--------+
 |                                     |                                  |
 |                                     |                                  |
 |                                     |                                  |
 |                                     |----------------------------------|
 |                                     |                                  |
 |                                     |                                  |
 |                                     |----------------------------------|
 |                                     |                                  |
 |                                     |                                  |
 |                                     |----------------------------------|
 |                                     |                                  |
 |                                     |                                  |
 |                                     |                                  |
 |                                     |----------------------------------|
 |                                     |                                  |
 |                                     |                                  |
 |                                     |----------------------------------|
 |                                     |                                  |
 |                                     |                                  |
 |                                     |                                  |
 +------------------------------------------------------------------------+

Bon, c'est quand même chargé. On peut appuyer plusieurs fois sur Alt-i pour augmenter le nombre de fenêtres dans le master. Je vous propose plutôt de tester un nouvel arrangement intégré à ma configuration : le mode grid avec Alt-g.

Avec ce dernier, c'est facile de repérer "top". Cela vous donne :

 +---------------------------+-----+-----------------------------+--------+
 |▫  ▫  ▫  ▪  ▪  ▪           |     |                             |        | 
 |[1  2  3  4  5  6  7  8  9]| HHH | titre de la fenêtre active  | status |
 |                           |     |                             |        |
 +---------------------------+-----+-----------------------------+--------+
 |                      |                       |                         |
 |                      |                       |                         |
 |                      |                       |                         |
 |                      |                       |                         |
 |                      |                       |                         |
 |                      |                       |                         |
 |                      |                       |                         |
 +----------------------+-----------------------+-------------------------+
 |                      |                       |                         |
 |                      |                       |                         |
 |                      |                       |                         |
 |                      |                       |                         |
 |                      |                       |                         |
 |                      |                       |                         |
 |                      |                       |                         |
 +----------------------+-----------------------+                         +
 |                      |                       |                         |
 |                      |                       |                         |
 |                      |                       |                         |
 |                      |                       |                         |
 |                      |                       |                         |
 |                      |                       |                         |
 |                      |                       |                         |
 +------------------------------------------------------------------------+

Attrapons la fenêtre contenant "top" en maintenant Alt appuyé puis en faisant un cliqué-glisser sur la fenêtre : elle se promène sur l'écran comme avec un gestionnaire de fenêtres flottant.

On peut la redimensionner en maintenant Alt appuyé puis en maintenant clic-droit.

Ça suffit maintenant, je déteste devoir redimensionner et déplacer des fenêtres manuellement.

Avant de se quitter, fermons toutes ces fenêtres avec Alt-Shift-c, ou bien en cliquant-droit sur le titre de la fenêtre.

On a fini notre tour de dwm. Il vous reste beaucoup à découvrir en parcourant la liste des patches éventuels, mais cela vous donne un aperçu et des idées sur la façon de l'utiliser.

N'hésitez pas à expérimenter.

Amusez-vous bien ;)

Au revoir : Alt-Shift-q

Liens

dwm : le guide à la prx
dwm
dmenu
st