dwm is a great window manager that's nice and lean, easy to get to grips with, and doesn't get in your way. Some highlights:
With that last one in mind here are some of my own "enhancements":
As much as I like dwm I was surprised to find out that there was no command for switching to the previous view, so I wrote a small patch for dwm to remedy this.
One thing that has been bugging me recently is that while you can toggle the mode between floating and tiling, it toggles every view and not just the one you're on. This patch makes toggling the mode specific to the current view.
A word of warning though - there's a limit of 10 views. If you've added more views to your tags then you'll need to change the declaration of viewmodes in dwm.h and main.c. This patch requires the view last view patch to work.
This patch allows floated windows to be lower than tiled ones (by default floated windows are always on top).
Whilst dmenu is not strictly part of dwm I can't imagine using it without it. I did feel however that the bindings (defined in the source) could do with being a bit more friendly for heathens such as myself.
The patch adds:
As good as dmenu is I felt I could make it more useful to handle all the arguments and the selections for it with a wrapper script, so I made one.
The script means you can have a list of possible selections stored as a file, updated and re-ordered when you make a new selection. Here's an example:
The above sets the prompt and the command the selection with be ran with to "urxvt -e", and loads commands from the "~/.dmenu/urxvt" file. The selection is then appended to the file, or moved to the end if it's already in it to prevent duplicates.
You can see best how I've implemented it in my .xbindkeysrc.scm.
Last but not least, is my config.h.
That about wraps it up for dwm-related shenanigans, there'll probably be more.
DWM lines 1-81/81 (END)