dwm - dynamic window manager ============================ dwm is an extremely fast, small, and dynamic window manager for X. Maintenance of this fork ------------------------ This repository has two remotes: `origin` for https://github.com/EdwinWenink/dwm and `upstream` for https://git.suckless.org/dwm/ . Use the `master` branch to pull in changes from the original dwm repository. Use `patched` to merge in new commits from the upstream into my own patched version of dwm. Applied patches --------------- - attachtop: newly created terminals are not on the master, but on top of the non-master stack. - pertag: layout settings are saved per tag, so you can e.g. have monocle on one and tabbed on the other. - push_no_master: push focused window up and down the stack, but not the master (because the zoom() function already takes care of that) Tutorial for applying --------------------- See https://suckless.org/hacking/ . In principle `git apply patches/patch.diff -3v` (3v for 3-way merge) . Some patches may be formatted differently. In that case, try `git am` (see suckless tutorial ). Don't forget to run `make clean install`. Requirements ------------ In order to build dwm you need the Xlib header files. On Arch Linux, install `xorg-server`, `libxft`, and `libxinerama`. 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.