Look at the commit history for more details on how these patches were applied.
- notitle - remove window name area from statusbar;
- statusallmons - render statusbar on all monitors;
- hidevacanttags - display only tags with at least one client;
- statuspadding - add configurable horizontal/vertical padding to statusbar;
- status2d - allow changing fg/bg color and rectangle drawing in statusbar.
- statuscmd - integrates with dwmblocks to provide clickable areas in the statusbar through signals.
- bottomstack -
mirrored version of the
tile
layout (onlybstack
has been patched and renamed tobtile
); - centeredmaster -
layout where the master area is positioned on a central column with
the stack area split on both sides (only the
centeredmaster
layout has been patched and renamed tocentmaster
); - gaplessgrid - positions clients in a grid;
- deck - monocle for the stack
area. The master area is maintained as for the
tile
layout while the stack area behaves like a deck of cards; - actualfullscreen - add true, pre-client, toggleable fullscreen;
- sticky - add per-client, toggleable stickiness across tags;
- ru_gaps - add gaps between clients, modifiable at runtime. Additional patches had to be applied for each additional patched layout;
- cyclelayouts - add the ability to cycle through layouts instead of binding each of them to a specific key.
- center - add a rule to center a (possibly floating) client on the screen;
- swallow - allows
graphical interfaces to take over the window terminal who spawned
them. This, for example, is useful to avoid the hack of embedding
sxiv
ormpv
into the terminal window when spawning them from a cli/tui interface.
- restartsig - add signal handling to cleanly kill/restart dwm;
- movestack - add ability to move selected client up/down the stack.
In order to build dwm you need the Xlib header files.
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
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
The configuration of dwm is done by creating a custom config.h and (re)compiling the source code.