dwm
dwm est un gestionnaire de fenêtre minimaliste en tiling. Il gère néanmoins les fenêtres flottantes également. Il est écrit en 2000 lignes de code avec pour uniques dépendances le serveur graphique X, make et gcc pour la compilation. Ce projet utilise dmenu pour lancer les applications via le clavier.
Dans ces circonstances, pas d'interface graphique de configuration, ni même de fichier de configuration en texte. Pour configurer/personnaliser dwm, il est nécessaire de modifier le code et de recompiler. Les sources sont composées de plusieurs fichiers :
- config.h, variables pour l'apparence générale, les raccourcis clavier.
- dwm.c, cœur du code
- Makefile, qui spécifie les instructions de compilation.
Les deux façons « faciles » de configurer dwm sont :
- modifier les variables existantes dans le fichier config.h
- appliquer des patches pour ajouter des fonctionnalités supplémentaires (http://dwm.suckless.org/patches/)
Spécificités liées au BÉPO
L'utilisation de dwm repose sur le concept de « tag » (très proche de celui de « bureau virtuel » et sur l'utilisation intensive de raccourcis clavier pour changer la disposition des fenêtres affichées. Les raccourcis par défaut sont très proches de ceux de vim en « hardcodées » QWERTY. L'utilisation de la disposition BÉPO pose particulièrement problème avec les touches h, j, k et l qui permettent de naviguer entre les fenêtres et de les redimensionner. De même, l'accès aux chiffres avec la touche Maj casse tous les raccourcis par défaut (il en est de même pour le clavier AZERTY). Il existe un patch pour régler ce soucis en azerty azerty.
Recommandations pour utilisation de dwm avec la disposition BÉPO
Pour contourner les soucis liés à la ligne des chiffres, ainsi que les raccourcis type vim, et faire en sorte que les raccourcis clavier reste identique même en cas de disposition de clavier multiple, on peut appliquer le patche keycodes. Ce patche modifie la façon avec laquelle dwm gère l'interaction avec le clavier, pour considérer les « keycodes » plutôt que les caractères.
Ceci rend la lecture et la modification de la section raccourci clavier plus laborieuse. Pour obtenir les keycodes liés à une touche du clavier, on pourra utiliser [xev] et observer l'activité sur la sortie standard après l'appui sur les touches en question.
Note : pour dwm 6.0, le changement de disposition provoque un changement des raccourcis clavier de dwm. À partir de dwm 6.1, en cas de disposition multiple, seule la disposition primaire est considérée. Cela rend viable une double disposition « QWERTY,bépo » sans recourir au patche keycode.
Configuration sans le patche keycodes
Il est possible d’adapter la configuration de dwm au bépo à l’aide des codes de touches X. La liste des codes existants est disponible ici. Une version avec affichage des caractères (en images) est disponible ici. Voici un exemple de configuration liant les caractères "«»()@+-/ aux tags 123456789 :
TAGKEYS( XK_quotedbl, 0) TAGKEYS( XK_guillemotleft, 1) TAGKEYS( XK_guillemotright, 2) TAGKEYS( XK_parenleft, 3) TAGKEYS( XK_parenright, 4) TAGKEYS( XK_at, 5) TAGKEYS( XK_plus, 6) TAGKEYS( XK_minus, 7) TAGKEYS( XK_slash, 8)
On peut également lier le caractère * au tag 0 en remplaçant la constante XK_0 par XK_asterisk :
{ MODKEY, XK_asterisk, view, {.ui = ~0 } }, { MODKEY|ShiftMask, XK_asterisk, tag, {.ui = ~0 } },
Sélection de patches pour la version 6.0
- systray ajoute une zone de notification
- pertag rend l'organisation de fenêtre indépendante selon le tag
- autostart permet d'exécuter un autostart.sh en début de session
- bottomstack ajoute une organisation de pile de fenêtre verticale
- keycodes dont le comportement a été documenté plus haut
NB: L'ordre d'application de patches est très important Il faut appliquer les patches compliqués avant les autres, sinon la commande patch ne retrouve pas ses petits. Pour cette sélection il faut appliquer systray avant pertag, ensuite l'ordre n'a plus d'importance.
Liens divers
Page du projet
http://dwm.suckless.org/ : de nombreuses ressources sont disponibles, faq, tutoriel, patches