While we're on macros, I use the following macro for each tag, so I can spawn an xterm wherever I want, in what mode I want, just by setting its class, e.g. $ xterm -class XTerm4f spawns a floating xterm on tag 4 (1-based indexing)
#define TAG(i) (1 << (i-1)) #define XTERM(n) \ { "XTerm"#n , NULL, NULL, TAG(n), False, -1 }, \ { "XTerm"#n"f" , NULL, NULL, TAG(n), True, -1 } /* meanwhile, in tag rules... */ XTERM(1), XTERM(2), ... It's been really useful for things like surf, where I can easily spawn all the download-handling xterms on an unused tag and deal with them later without having to recompile dwm with a new tag entry. Course I have to bodge my .Xdefaults a bit to keep them obeying whatever rules I want. I don't know whether it's valid or not, but just having all lowercase "xterm" works: xterm*background: black s/xterm/urxvt too Cheers, Rob