dwm

Aus wiki.archlinux.de

DWM ist ein tiling Windowmanager. Die Vorzüge von DWM liegen in seiner sehr geringen Größe (wenige k) und seiner hohen Geschwindigkeit. Die hohe Geschwindigkeit wird unter anderem durch den Verzicht auf Configdateien erreicht, Einstellungen müssen in einer header-datei geändert und das gesamte Programm neu compiliert werden.

Installation

DWM befindet sich in [community] und lässt sich mit

 pacman -S dwm

installlieren.

Konfiguration

Um DWM zu konfigurieren muss die Datei config.h geändert werden und das Paket neu gebaut werden. Hierzu müssen einige Voraussetzungen erfüllt sein.

Voraussetzungen

Es wird die Programmgruppe base-devel und abs benötigt um DWM zu kompilieren.

 pacman -S base-devel abs

Herunterladen der build scripts mit ABS

Sobald die benötigten Pakete installiert sind, benutzen wir ABS um die DWM build scripts herunter zu laden.

abs community/dwm
cp -r /var/abs/community/dwm ~/dwm

Bauen und installieren des Paketes

wechsele mit cd in das Verzeichnis und führe makepkg aus

cd ~/dwm
makepkg -i

Dies kompiliert DWM, erstellt ein Arch Packet und installiert es in einem Rutsch.

Einstellungen

Einstellungen können nun ganz leicht in ~/dwm/config.h geändert werden. Nachdem man die gewünschten Einstellungen geändert hat, muss man DWM neu bauen. Zunächst muss die MD5 Checksumme für die geänderte config.h bzw. das Paket generiert werden

makepkg -g >> PKGBUILD

Danach baut man DWM mit

makepkg -efi

Hat man keine Fehler in der config.h gemacht wurde DWM nun mit den neuen Einstellungen gebaut.

Eine Möglichkeit um die MD5 Checksumme zu umgehen ist:

makepkg -efi --skipinteg

damit spart man sich das ewige makepkg -g >> PKGBUILD

Patches

Einen Patch welchen ich für äußerst praktisch erachte ist der nextprevtag-patch. Mit dem nextprevtag-patch lassen sich bequem die Tags mit den Pfeiltasten wechseln. Dazu folgenden C-Code als nextprevtag.c ins src verzeichnis von dwm kopieren:

void
view_adjacent(const Arg *arg)
{

int i, curtags; int seltag = 0; Arg a;

curtags = selmon->tagset[selmon->seltags]; for(i = 0; i < LENGTH(tags); i++) if(curtags & (1 << i)){ seltag = i; break; }

seltag = (seltag + arg->i) % (int)LENGTH(tags); if(seltag < 0) seltag += LENGTH(tags);

a.i = (1 << seltag); view(&a);

}

Danach fügt man folgendes in seine config.h ein:

static Key keys[] = {
   /* ... */
   { MODKEY,              XK_Right,           view_adjacent,  { .i = +1 } },
   { MODKEY,              XK_Left,           view_adjacent,  { .i = -1 } },
   /* ... */
};
static Button buttons[] = {
   /* ... */
   { ClkTagBar,            0,              Button4,        view_adjacent,     { .i = -1 } },
   { ClkTagBar,            0,              Button5,        view_adjacent,     { .i = +1 } },
   /* ... */
};

und includiert nextprevtag.c kurz vor {{{1}}} mit #include nextprevtag.c

DWM starten

Um DWM mit startx zu starten, muss es nur in die ~/.xinitrc eingetragen werden.

exec dwm


Weblinks