94 lines
3.6 KiB
Markdown
94 lines
3.6 KiB
Markdown
|
---
|
|||
|
title: Howto dwm
|
|||
|
category: 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é qu’en le compilant soi-même. Installer le paquet permet toutefois d’avoir un idée du logiciel brut, pour essayer, et d’installer 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` s’appuye 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 d’afficher la date et l’heure dans la barre :
|
|||
|
|
|||
|
~~~
|
|||
|
$ while xsetroot -name "$(date +'%F | %R')"
|
|||
|
do
|
|||
|
sleep 20
|
|||
|
done
|
|||
|
~~~
|
|||
|
|
|||
|
## _Patchs_
|
|||
|
|
|||
|
De nombreux _patchs_ sont disponibles sur le [site officiel](https://dwm.suckless.org/patches/).
|
|||
|
|
|||
|
### 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.
|