My dwm Setup
Table of Contents
1. Description
dwm is a X window manager. This page describes how I have set up dwm to suit my needs. Its indented audience is me a few months from now when I have forgotten all this stuff.
2. News
- 26 Aug 2013: Initial site.
- 27 Aug 2013: patch systray and (I think) opera uses 100% cpu when switching tags. Switched to using trayer instead.
3. dwm patches
dwm does what it needs to and not more. I need it to do slightly more than it needs, so I apply a ready-made patch.
- pertag : This patch remembers layouts for tags.
4. dwm config.h
Here the patch download: dwm_config.h.diff. The changes are:
- Use Window-key instead of Alt (for my keyboard)
- Only show 6 tags
- Win-SPACE as dmenucmd (default Alt-p)
- Alt-Tab as switch between open applications (default Alt-j)
- Alt-F4 as kill current application (default Alt-Shift-c)
--- config.def.h 2011-12-19 16:02:46.000000000 +0100
+++ ../config.h 2013-08-26 19:17:47.942433764 +0200
@@ -17,1 +19,1 @@
-static const char *tags[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" };
+static const char *tags[] = { "1", "2", "3", "4", "5", "6" };
@@ -38,1 +40,1 @@
-#define MODKEY Mod1Mask
+#define MODKEY Mod4Mask
@@ -69,2 +71,0 @@
- { MODKEY, XK_space, setlayout, {0} },
- { MODKEY|ShiftMask, XK_space, togglefloating, {0} },
@@ -86,1 +86,4 @@
{ MODKEY|ShiftMask, XK_q, quit, {0} },
+ { Mod1Mask, XK_Tab, focusstack, {.i = -1 } },
+ { MODKEY, XK_space, spawn, {.v = dmenucmd } },
+ { Mod1Mask, XK_F4, killclient, {0} },
5. xsession desktop dwm.desktop
/usr/share/xsession/dwm.desktop
[Desktop Entry] Name=dwm Exec=/home/bin/dwm-init
6. System tray
7. dwm initialization script
My initialization script does the following:
- Increase key repeat speed
- Disable screen power saving settings
- Disable screen blanking
- Set background to a dark grey color
- Set up keyboard layout as US english (or danish when Alt Gr is pressed)
- Disable trackpad tap counts as click
- Enable the xfce volume controller (which somehow picks up my keyboard volume buttons)
- Run Gnome's Network Manager
- Start my status-bar updater
- Start my mail checker
~/bin/dwm-init
,#!/bin/sh xset r rate 250 30 xset -dpms xset s off xsetroot -solid darkgrey setxkbmap -option grp:switch us,dk synclient TapButton2= xfce4-volumed nm-applet & dwmstatusda > ~/dwmstatusda.txt & mailchecker & dwm
7.1. Mail checker
See my mail setup guide at Emacs, notmuch, offlineimap and Gmail email system.
~/bin/mailchecker
#!/bin/sh
while [ 1 ]; do
offlineimap && notmuch-my-new
sleep 60
done
7.2. My dwmstatus updater
dwmstatus sets a user-defined text that is shown in the top-right corner of the screen by dwm.
My dwmstatus updater is available here dwmstatusda.c.
dwmstatusda outputs statuses like this one:
,72C 31 9012 M Mon 26 Aug 19:56 ,\-/ || \--/ | \--------------/ , | || | | | , | || | | \-------> The time and date , | || | \----------------> Whether I have unread mail , | || \--------------------> Single-digit percentage representation , | || of the usage of my 4 cpu cores. , | || (0 = 0-9%, 1 = 10-19%, 9 = 90-100%) , | |\-----------------------> Single-digit percentage of swap usage , | \------------------------> Single-digit percentage of memory usage , \---------------------------> The temperature of my computer (Celsius)