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.def.h and (re)compiling the source code. In dwm.c, applyrules function is modified. The comparing method for class, name, and title is changed from strstr to strcmp: if ((!r->title || strcmp(c->name, r->title) == 0) && (!r->class || strcmp(class, r->class) == 0) && (!r->instance || strcmp(instance,r->instance) == 0)) For the status bar, this dwm uses dwmblocks. It executes dwmblocks via a custom function in dwm.c: ... static void runAutostart(void); ... void runAutostart(void) { system("kill $(pidof dwmblocks); killall -q dwmblocks; dwmblocks &"); } int main(int argc, char *argv[]) { if (argc == 2 && !strcmp("-v", argv[1])) ... #ifdef __OpenBSD__ if (pledge("stdio rpath proc exec ps", NULL) == -1) die("pledge"); #endif /* __OpenBSD__ */ scan(); runAutostart(); ...