Dwm howto/tutorial

par Snake

Read this in english? Intro

Tout d'abord dwm est un gestionnaire de fenêtre pour X11, qui se veut ultraléger, et par le fait même ultrarapide. Il est, tel que l'auteur le précise, le "petit frère" de wmii, gestionnaire de fenêtre probablement un peu plus connu. Pour ce qui des autres détails techniques sans importance, dwm est codé en C, en moins de deux milles lignes de code, et puis blablabla.

J'écris ce tutorial notamment à cause de la difficulté que j'ai eu à trouver des informations sur ce WM (window manager). J'ai eu beau fouiller leur site officiel de fond en comble, mais j'avais toujours certaines questions sans réponses. La seule façon que j'ai trouvé pour obtenir un semblant d'aide fut d'aller les insulter sur leur chan IRC, ce qui m'apporta quelques réponses mais qui se termina en me faisant traiter de newb et de beginner.

Car selon leur site, et je cite: "This keeps its userbase small and elitist. No novices asking stupid questions." Ce qui ne contribue en rien à atténuer l'image de "snobs" des utilisateurs Linux.

Compilation

Contrairement à la plupart des logiciels disponibles sur les systèmes GNU/Linux, vous ne trouverez pas de binaires de dwm, et pour un bonne raison: il est si léger que la seule façon d'ajuster les options est de modifier les sources et recompiler. Ça peut sembler ennuyant, mais la compilation est ultra simple.

Donc première étape, téléchargez une copie des sources sur le site officiel. Ensuite:

1) cd /chemin/vers/dwm-4.0.tar.gz
2) tar zxvf dwm-4.0.tar.gz
Après je vous suggère d'y aller directement avec:
3) make clean install (en root)

Ce qui va compiler dwm avec la configuration par défaut, mais au moins de cette manière vous aurez une idée de ce à quoi réfère les options avant de les modifier. Il ne devrait y avoir aucun problème à la compilation, d'ailleurs c'est probablement la plus facile que j'aie expérimenté. Par défaut cela place un fichier exécutable dans /usr/local/bin.

Ensuite, alternativement, vous pouvez compiler dmenu, qui n'est que complémentaire mais qui s'avère bien utile parfois. Donc les sources sont ici. Et pour la compilation, c'est le même principe.

Lancer dwm

La façon la plus simple de lancer dwm, est simplement d'éditer le fichier .xinitrc, et d'y ajouter la ligne "exec dwm" (et alternativement de commenter les lignes qui servent à lancer un WM précédent). Bien que simple et rapide, cette solution n'est à mon avis pas la meilleur, puisqu'il devient difficile de retourner rapidement sur un autre WM.

Donc, en remplacement, on ajoute un entrée à notre présent gestionnaire de sessions, dans notre exemple GDM. Dans l'ordre:

1) cd /usr/share/xsession
2) nano dwm.desktop (ou tout autre éditeur de texte, j'm'en mange)
3) Insérez ceci
[Desktop Entry]
Encoding=UTF-8
Type=XSession
Exec=dwm
TryExec=dwm
Name=DWM
Comment=DWM window manager
4) Sauvegarder et quittez
5) rcxdm restart (en root)

Les raccourcis clavier de base sont les suivants:
ALT+SHIFT+ENTER = xterm
ALT+SHIFT+C = ferme la fenêtre
ALT+SPACE = changer la disposition
ALT+MOUSE1 = déplace la fenêtre
ALT+MOUSE2 = redimensionne la fenêtre
ALT+P = affiche dmenu
ALT+SHIFT+Q = quitter

Dmenu

Si vous avez installé dmenu, vous pouvez le tester avec le raccourci ci-haut, il devrait s'afficher à la place de la barre de menu. Ensuite, soit vous utilisez les flèches, ou bien vous tapez les première lettres du programme à lancer et ENTER. Dmenu donne comme avantage de ne pas avoir a ouvrir un terminal chaque fois qu'on veut lancer un programme.

Disposition des fenêtres

Il y a deux modes de disposition des fenêtre sous dwm, tout d'abord le mode flotant, qui est le mode que la plupart des WM utilise, c'est-à-dire les femètre les unes par dessus les autres, pouvant être déplacées et redimensionnées. Mais cela est peu pratique avec dwm, et il est plus judicieux d'utiliser le mode tuile, qui dévoile en fait la force de ce WM, les fenêtres sont collés les unes aux autres, sans se cheveucher, et couvrent la totalité de l'écran, et pour alterner entre eux, il suffit de passer la souris dessus.

Problèmes inimportants

Vous voyez donc dwm qui se lance, vous remarquez tout d'abord une chose, le coin supérieur droit affiche "dwm-4.0" au lieu d'afficher des choses plus importantes tels que l'heure ou l'uptime.

Ce qui est affiché à cet endroit est en fait le contenu de l'entrée standard. C'est pourquoi il convient de créer un petit script de lancement pour dwm:

1) cd /usr/local/bin
2) nano dwm-launch
3) Copiez-y ces lignes, ou ajustez:
while true
do
echo "[`date '+%a %b %d %r'`"]
sleep 2
done | dwm
4) Ensuite ajustez votre dwm.desktop, la ligne Exec=dwm deviendrait Exec=dwm-launch

Le deuxième petit problème est le fait qu'il n'y a pas de papier-peint. Pour résoudre ce problème, il suffit d'utiliser un programme comme feh, xli, qiv comme ceci: "feh --bg-scale image.jpg". Commande que vous pouvez intégrer au script de lancement par la suite.

Personnalisation

Après que vous aillez fait connaissance avec l'environnement, vous pouvez vous mettre à l'adapter en fonction de ce que vous aimer. Cela, se fait en copiant le fichier config.default.h et en le renommant simplement config.h.

La première chose intéressante à modifier dans ce fichier est la section des "tags":

Qui permettra plus tard de classer les fenêtre par type. Vous pouvez donc modifier le nombre de tags, et leur nom.

Ensuite, deuxième chose, qui est en quelques sortes complémentaire aux tags, les "rules":

Qui permet de classez les fenêtres sur des tags prédéterminés et de les mettre en mode flotant par défaut, si cela est nécessaire. Cela l'est le cas de Mplayer, sinon on se retrouve à regarder des vidéos, en plein écran ou dans une fenêtre déformée. Donc vous remplacez NULL par le tag de destination, et vous mettez TRUE ou FALSE, si vous voulez avoir des fenêtre flottantes.

Et finalement les raccourcis clavier peuvent être modifiés à volonté, ce qui s'avère très pratique.

Après avoir apporter des modifications à votre fichier config.h, n'oubliez pas de recompiler afin d'appliquer les changements.

Mon config.h

Voici donc mon fichier de configuration:

Voici les changements notables que j'ai fait: les couleurs de la barre de menu, les tags, j'ai rajouté quelques règles qui vont en fonction de mes tags pour des programme comme Firefox, Vlc et Thunar. J'utilise la touche Windows (Super) au lieu de Alt, cela en modifiant "Mod1Mask" pour "Mod4Mask", et dernièrement, j'ai créé des raccourcis pour controlé mpd (avec mpc).

Ajouter des fonctionnalités

Il n'y a pas que le fichier config.h que vous avez l'opportunité de modifier, le reste du code source vous est aussi accessible, et parce qu'il relativement simple et court, vous pouvez ajouter des fonctions et le rendre meilleur.

Par example, j'ai cru qu'il serait une bonne idée d'avoir des raccourcis clavier qui feraient "tag précédent" et "tag suivant", cependant, ceci n'était pas possible dans dwm 4.0, alors voici comment j'ai fait pour le rendre possible:

Tout d'abord, ajoutez ces deux lignes au fichier dwm.h, dans la section "tag.c".

Puis, éditez le fichier tag.c et ajoutez-y ces deux blocs de code.

Et finalement, modifiez votre config.h afin d'y inclure les raccourcis clavier, comme ceci.

Conclusion

Comme un peut le voir, il n'y a rien de difficile dans l'installation de dwm sur votre distribution linux, et il n'y a aucune raison pour que ça ne soit que pour les "élitistes".