dwm - dynamic window manager ============================ dwm is an extremely fast, small, and dynamic window manager for X. Requirements ------------ In order to build dwm you need the Xlib header files. Installation ------------ Edit config.mk to match your local setup (dwm is installed into the /usr/local namespace by default). Afterwards enter the following command to build and install dwm (if necessary as root): make clean install Running dwm ----------- Add the following line to your .xinitrc to start dwm using startx: exec dwm In order to connect dwm to a specific display, make sure that the DISPLAY environment variable is set correctly, e.g.: DISPLAY=foo.bar:1 exec dwm (This will start dwm on display :1 of the host foo.bar.) In order to display status info in the bar, you can do something like this in your .xinitrc: while xsetroot -name "`date` `uptime | sed 's/.*,//'`" do sleep 1 done & exec dwm Configuration ------------- The configuration of dwm is done by creating a custom config.h and (re)compiling the source code. Patches ------- systray - zoomswap - scratchpad - sticky - pertag - noborder - movestack - hide vacant tags - bar height - actualfullscreen - alpha monocle layout - bidi - fakefullscreenclient - moveresize - statuscmd Fixes ----- To fix systray and statuscmd conflicts: In the buttonpress function where you have this line: else if (ev->x > selmon->ww - statusw) { and you have to make sure that it takes the width of the systray into account as well, so you end up with: else if (ev->x > selmon->ww - statusw - getsystraywidth()) { Replace drw_text(drw, m->ww - statusw + x, 0, tw, bh, 0, text, 0); With drw_text(drw, m->ww - statusw - stw + x, 0, tw, bh, 0, text, 0); Fix for offset of clicks else if (ev->x > selmon->ww - statusw - getsystraywidth()) { x = selmon->ww - statusw - getsystraywidth(); //This wasn't there before