Ma config dwm (et installation de ly)

Salut ! Voici un petit guide sur ma twm (Tiling Window Manager) préférée. DWM est un TWM minimaliste et extrêmement light écrit en C.

Il n’y a pas de “dotfile”, vous éditez le code source lui-même :p Donc la configuration est un peu différente des autres TWM, c’est pour cela que je fais un guide.

Téléchargement

Tout d’abord on va télécharger le code source de dwm

sudo apt install dwm suckless-tools feh
git clone git://git.suckless.org/dwm
cd dwm/

La commande APT va servir à installer toutes les dépendances nécessaires pour nous.

Comprendre ce guide

Dans ce guide je vais utiliser une formulation pour l’édition des fichiers de configuration. Elle dérive de git diff

- Ligne à supprimer
+ Nouvelle ligne pour remplacer la précédente

Configuration du clavier et des tags (workspaces)

Tout d’abord on va entrer dans le fichier de configuration:

nano config.def.h

Je n’aime pas beaucoup la touche ALT qui est utilisée par défault. Je préfère la touche WIN :

- #define MODKEY Mod1Mask
+ #define MODKEY Mod4Mask

Je vais ensuite supprimer des ‘tags’, ces ‘tags’ sont aussi appellés ‘workspaces’ dans d’autes TWMs.

- static const char *tags[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" };
+ static const char *tags[] = { "1", "2", "3" };

Je vais aussi supprimer des “règles”, ces règles définissent dans quel tag chaque fenêtre va s’ouvrir, je n’ai jamais compris le but de ce truc.

- { "Firefox",  NULL,       NULL,       1 << 8,       0,           -1 },

J’utilise un clavier AZERTY, donc les raccourcis de claviers pour changer de tags ne sont plus les mêmes. Rajouter à cela que l’on a supprimé 6 tags.

- TAGKEYS(                        XK_1,                      0)
- TAGKEYS(                        XK_2,                      1)
- TAGKEYS(                        XK_3,                      2)
- TAGKEYS(                        XK_4,                      3)
- TAGKEYS(                        XK_5,                      4)
- TAGKEYS(                        XK_6,                      5)
- TAGKEYS(                        XK_7,                      6)
- TAGKEYS(                        XK_8,                      7)
- TAGKEYS(                        XK_9,                      8)

+ TAGKEYS(                        XK_ampersand,              0)
+ TAGKEYS(                        XK_eacute,                 1)
+ TAGKEYS(                        XK_quotedbl,               2)

On peut encore changer tous les autres raccourcis de clavier, mais j’aime bien ceux qui sont par défault, donc je vais les laisser.

Ajouter une bordure, des couleurs et des ‘gaps’

On va commencer par le plus simple: la bordure et la couleur par défault.

- static const unsigned int borderpx  = 1;
+ static const unsigned int borderpx  = 2;

- static const char col_cyan[]        = "#005577";
+ static const char col_cyan[]        = "#23eafc";

Une fois que l’on a changé notre belle bordure, on va ajouter des gaps. Cela est un peu plus compliqué, donc on va utiliser un patch.

Voici les commandes à utiliser pour installer le patch:

wget https://dwm.suckless.org/patches/uselessgap/dwm-uselessgap-20200719-bb2e722.diff
patch -i dwm-uselessgap-20200719-bb2e722.diff
rm dwm-uselessgap-20200719-bb2e722.diff

Une fois cela fait, on va changer la largeur de ceux-ci:

- static const unsigned int gappx     = 6;
+ static const unsigned int gappx     = 20;

Ensuite on va compiler dwm

rm config.h
sudo make clean install 

Status bar et fond d’écran

Ensuite, on va créer un script pour lançer dwm

sudo vim /usr/bin/start_dwm

Voici le code qui va être dans ce script :

while xsetroot -name "`cat /sys/class/power_supply/BAT1/capacity`% | `date`"
do
	sleep 1
done &
feh --bg-scale <path to the image>
exec dwm

Enfin on va rendre le script exécutable et l’ajouter dans /usr/share/xsessions/ :

sudo vim /usr/share/xsessions/dwm.desktop

Voici le code du fichier :

[Desktop Entry]
Encoding=UTF-8
Name=dwm
Comment=Dynamic window manager
Exec=start_dwm
Icon=dwm
Type=XSession

Maintenant il ne reste plus qu’a se déconnecter et rejoindre dwm :p

pkill -u $USER

Installer ly à la place de lightdm ou de gdm

Je n’aime pas trop lightdm ou gdm, donc j’ai choisis d’installer ly à la place. Voici comment l’installer:

Tout d’abord on va télécharger le code source

git clone https://github.com/nullgemm/ly
cd ly/

Maintenant on va installer toutes les dépendences:

sudo apt install build-essential libpam0g-dev libxcb-xkb-dev

Ensuite on peut compiler le tout :

make github
make
sudo make install

Puis l’activer

sudo systemctl disable lightdm gdm
sudo systemctl enable ly

On peut ensuite reboot l’ordi.

reboot

Et voilà !