22
0
Fork 0
wiki/HowtoDwm.md

3.6 KiB
Raw Permalink Blame History

title categories
Howto dwm window manager desktop suckless

Site officiel : https://dwm.suckless.org/

dwm est un gestionnaire de fenêtres très simple. Sa simplicité de conception permet de relativement facilement modifier le code source pour ajouter ou modifier des fonctionnalités. Il est écrit en C.

Installation

Sous Debian

On peut installer le paquet dwm directement. Comme quasiment tous les logiciels de la communauté suckless, dwm ne peut être configuré quen le compilant soi-même. Installer le paquet permet toutefois davoir un idée du logiciel brut, pour essayer, et dinstaller ses dépendances, comme dmenu.

# apt install dwm

Compiler dwm

Par défaut, make install installe dwm sous /usr/local. Il faut modifier la variable PREFIX dans le fichier config.mk si on souhaite changer la destination.

# apt install libx11-dev libxft-dev libxinerama-dev
# cd /usr/local/src
# git clone git://git.suckless.org/dwm
# cd dwm
# cp config.def.h config.h
# vi config.h
# make clean install

Barre d'état

dwm sappuye sur le nom de la fenêtre racine (root window) et affiche le texte correspondant dans sa barre détat. Pour changer le texte de la barre, on peut utiliser la commande xsetroot :

$ xsetroot -name 'hello there'

Le script shell suivant permet dafficher la date et lheure dans la barre :

$ while xsetroot -name "$(date +'%F | %R')"
do
    sleep 20
done

Patchs

De nombreux patchs sont disponibles sur le site officiel.

Bépo

Si on utilise un clavier bépo, les raccourcis MOD-[1-9] ne fonctionneront pas. Pour corriger ça:

diff --git a/config.def.h b/config.def.h
index 9efa774..9a12476 100644
--- a/config.def.h
+++ b/config.def.h
@@ -81,6 +81,8 @@ static const Key keys[] = {
        { MODKEY|ShiftMask,             XK_space,  togglefloating, {0} },
        { MODKEY,                       XK_0,      view,           {.ui = ~0 } },
        { MODKEY|ShiftMask,             XK_0,      tag,            {.ui = ~0 } },
+       { MODKEY,                       XK_asterisk,view,          {.ui = ~0 } },
+       { MODKEY|ShiftMask,             XK_asterisk,tag,           {.ui = ~0 } },
        { MODKEY,                       XK_comma,  focusmon,       {.i = -1 } },
        { MODKEY,                       XK_period, focusmon,       {.i = +1 } },
        { MODKEY|ShiftMask,             XK_comma,  tagmon,         {.i = -1 } },
@@ -94,6 +96,15 @@ static const Key keys[] = {
        TAGKEYS(                        XK_7,                      6)
        TAGKEYS(                        XK_8,                      7)
        TAGKEYS(                        XK_9,                      8)
+       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)
        { MODKEY|ShiftMask,             XK_q,      quit,           {0} },
 };
 

Les valeurs XK_quotedbl, XK_guillemotleft cie peuvent être obtenues avec la commande $ xev -event keyboard.

On peut utiliser la même méthode (en changeant les XK_) pour azerty.