Dwm

Aus DebianforumWiki
Wechseln zu: Navigation, Suche
WikiGrafische Oberflächen ‹ Dwm


Getestet.png Getestet: Dieser Hinweis soll dir dabei helfen, zu entscheiden, ob dieser Artikel auf deinem System funktionieren wird oder nicht. Solltest du feststellen, dass dieser Artikel bei einer ungetestet Version funktioniert, kannst du das gerne hier korrigieren oder im Forum anmerken.


Debianpackage.png dwm ist ein dynamischer, tastaturgesteuerter Tiling Windowmanager entwickelt von Anselm R. Garbe sowie der Suckless Community. Zur Zeit (22.07.2010) ist die aktuelle Version 5.8.2 .

Ähnlich wie bei anderen tiling Windowmanagern (Debianpackage.png wmii, ion, Debianpackage.png awesome) ist er komplett mit der Tastatur bedienenbar. Die Fenster werden dabei je nach gewählten Modus über den Monitor verteilt.


dwm Screenshot, Tiling Modus



Debianpackage.png dwm kann nur über die Datei config.h konfiguriert werden, d.h. er muss nach jeder Änderung der Konfiguration neu kompiliert werden.

dwm kann Fenster entweder im Tiling, im Floating Modus oder über den ganzen Bildschirm maximiert (Monocle) anzeigen. In den neueren Version unterstützt dwm xinerama für Mehrbildschirmbetrieb.

Verschiedene Modi

Tiling Modus

ALT + t

Der Tiling Modus ist in einen Master und einen Stacking Bereich aufgeteilt Im Master Bereich wird das Haupt Fenster angezeigt während im Stacking Bereich alle übrigen Fenster angezeigt werden. Mit ALT + [j,k] kann man durch alle Fenster wechseln, und mit ALT + Enter das gerade aktive Fenster in den Master Bereich schieben. Das zuvor im Master Bereich enthaltene Fenster wird in den Stack verschoben.

Floating Modus

ALT + f

Im Floating Modus kann jedes Fenster eine beliebige Grösse annehmen. Der Floating Modus entspricht am ehesten dem Verhalten "normaler" WM wie Fluxbox, Openbox, metacity, kwin... Fenster verschieben kann man durch festhalten von ALT + verschieben mit der Maus.

Monocle Layout

ALT + m

Fenster werden Maximiert über den ganzen Bildschirm dargestellt. Der Bereich in dem normalerweise das Symbol für das gerade gewählte Layout angezeigt wird, wird durch die Anzahl der geöffneten Fenster im aktuellen Tag ersetzt.

Installation von dwm

Paket besorgen

Debianpackage.png dwm ist auch über die Debian-Quellen erhältlich. Da aber die Konfiguration über die Datei config.h geschieht und das Programm danach neu kompiliert werden muss, empfiehlt es sich die neueste Version von suckless.org zu besorgen. Wer gerne die Entwicklung verfolgen möchte oder sowieso gerne mit einem Versionskontrolsystem arbeitet dem sei das Mercurial Repositorie ans Herz gelegt. Eine Kopie des dwm-mercurial Repositories laden:

  hg clone http://hg.suckless.org/dwm

Für die Installation muss das Paket Debianpackage.png xorg installiert, und der X-Server korrekt konfiguriert sein. Danach müssen, falls noch nicht geschehen folgende Pakete installiert werden: Debianpackage.png libx11-dev Debianpackage.png build-essential (Für die Xinerama Unterstützung: Debianpackage.png libxinerama-dev)

Konfigurieren

Danach wechselt man in das entpackte Verzeichnis und kopiert sich die Datei config.def.h als Vorlage für seine eigene Konfiguration.

   cp config.def.h config.h

Darin können shortcuts, Farben, sowie Layouts angepasst werden.

Farben, Größe der Ränder sowie die Schriftart:

static const char font[]            = "-*-terminus-medium-r-*-*-16-*-*-*-*-*-*-*";
static const char normbordercolor[] = "#cccccc";
static const char normbgcolor[]     = "#cccccc";
static const char normfgcolor[]     = "#000000";
static const char selbordercolor[]  = "#0066ff";            /* Farbe des Randes des markierten Fensters */
static const char selbgcolor[]      = "#0066ff";
static const char selfgcolor[]      = "#ffffff";
static const unsigned int borderpx  = 1;        /* border pixel of windows */          
static const unsigned int snap      = 32;       /* snap pixel */
static const Bool showbar           = True;     /* False means no bar */
static const Bool topbar            = True;     /* False means bottom bar */
</pre
Kommandos:
<pre>
static const char *dmenucmd[] = { "dmenu_run", "-fn", font, "-nb", normbgcolor, "-nf", normfgcolor, "-sb", selbgcolor, "-sf", selfgcolor, NULL };
static const char *termcmd[]  = { "term", NULL };     /* Hier ist term das standardmäsig zu öffnende Terminal */

und Tastenkürzel definieren

static Key keys[] = {
        /* modifier                     key        function        argument */
        { MODKEY,                       XK_p,      spawn,          {.v = dmenucmd } },
        { MODKEY|ShiftMask,             XK_Return, spawn,          {.v = termcmd } },
        { MODKEY,                       XK_b,      togglebar,      {0} },    /* Aus und einblenden der oberen Statusleiste */
        { MODKEY,                       XK_j,      focusstack,     {.i = +1 } },   
        { MODKEY,                       XK_k,      focusstack,     {.i = -1 } },
        { MODKEY,                       XK_h,      setmfact,       {.f = -0.05} },   /* Master und stack bereich verkleiner 
        { MODKEY,                       XK_l,      setmfact,       {.f = +0.05} },   /*   bzw. vergrößern */
        { MODKEY,                       XK_Return, zoom,           {0} },   /* markiertes Fenstern in des masterbereich verschieben */
        { MODKEY,                       XK_Tab,    view,           {0} },

Da die config.def.h in jedem dwm-Paket enthalten ist, ist sie hier nur ausschnittsweise dokumentiert.

Installation

Nach abgeschlossener Konfiguration kann dwm per

root@debian: make clean install

standardmäßig nach /usr/local/bin installiert werden.

Um Debianpackage.png dwm zu starten zu können benötigt man einen .desktop Eintrag in /usr/share/xsession oder man wählt die einfachere und flexiblere Variante über startx. Die Konfiguration erfolgt beim starten von X per startx über die .xinitrc Dort kann man noch eine Statuszeilenausgabe für dwm einrichten sowie weitere Programme gleich mitstarten.

#was man sonst noch so mitstarten will:
pidgin &
uxterm -e mutt &

#danach kommt dwm mitsamt Statusbar dran:

exec
   while true
   do
     #Datum, Auslastung,Prozessortakt:
     echo `date` `uptime | sed 's/.*,//'` `cat /proc/cpuinfo | sed -e '7s/cpu MHz/   /g' -e '1,6d' -e '8,20d'` MHz
     
     #Wenn man z.B. seine E-Mails im Maildir Format speichert kann man noch diese Zeile hinzufügen, 
     #um neue E-Mails in der Statusbar angezeigt zu bekommen
     #jeweils Pfad zur passenden Mailbox anpassen:
     Inb:`ls /home/user/mail/inbox/new/|wc -l`                 
     dwm:`ls /home/user/mail/dwm/new/|wc -l`     
     dug:`ls/home/user/mail/debian-user-german/new/|wc -l`  
     AMD64:`ls /home/user/mail/debian-amd64/new/|wc -l`

     sleep 1
     done | dwm

Danach lässt sich dwm per

  user@debian: startx 

starten.

Bedienung

ALT + Shift + Enter -> Starten eines Terminal

ALT + t -> Wechseln in den Tiling Modus (Standard)

ALT + f -> Wechseln in den Float-Modus

ALT + m -> Wechseln in den Monocle Layout

ALT + Shift + c -> Fenster schliessen

ALT + Shift + q -> dwm beenden


Weiter soll auf die Tastenkürzel hier nicht eingegangen werden, ein Blick in die manpage oder auf die Projektseite ist aber sehr hilfreich.

Kleine Helfer

Neben dwm wurden von der suckless community weitere Programme entwickelt die Debianpackage.png dwm hervorragend ergänzen.

Info für Squeeze/sid Nutzer:

Ab Squeeze wird Debianpackage.png dwm-tools ersetzt durch Debianpackage.png suckless-tools Darin sind schon einige der unten genannten Programme enthalten, wer sich also die manuelle Installation sparen möchte, kann das genannte Paket installieren.


dmenu

Wenn man noch nach einer komfortablen Möglichkeit sucht Programme zu starten, bietet sich dmenu an. Nach der Installation die analog zu der von dwm verläuft lässt sich dmenu über den shortcut ALT + p (Standardeinstellung) starten. Um zu verstehen wie dmenu arbeitet ist es am einfachsten wenn man sich die Ausgabe von

`ls /usr/bin | dmenu`

ansieht.

slock

Slock ist ein Programm zum Sperren des Bildschirms. Zum starten "slock" aufrufen, zum entsperren das Passwort des Benutzers eingeben und mit Enter bestätigen (nicht wundern, Bildschirm bleibt während der Passworteingabe schwarz).

tabbed

Patches

Um dwm um neue Funktionen oder weitere Layouts zu erweitern stehen auf http://dwm.suckless.org/patches eine große Anzahl an patches bereit, die einfach auf dwm angewendet werden können. Wie das geht und welche Unterschiede es zwischen dem mercurial repository und dem tarball gibt findet man ebenso auf der suckless Webseite.

Links

dwm-home
Gnome mit Dwm anstelle von metacity
Artikel im Linux Journal (Englisch)

Todo / Ideen

  • Beschreibung von Tags
  • dwm/suckless philosophie?
  • Unterschiedliche Benutzung beschreiben TAG/Workspace
  • Möglichkeiten fenster beim starten auf bestimme tags verschieben aufzeigen
  • Forks auflisten
  • die verschiedenen Tool auf eine extra Seite augelagert werden und von der hauptseite (suckless?) darauf verwiesen werden?