Hi all, first of all thank you so much for this genius piece of software (dwm)!
Using a combination of 'bbkeys', 'blackbox', 'devilspie' and 'gkrellm' for years I started to look for a more compact solution yesterday. So I finally stumbled over 'dwm' tried it and begun to love it since the first second. I use a triple monitor setup with xinerama. So I tried the patch [1]. Unfortunately that does not work for me. It appears to confuse the tags somehow but I didn't dig deeper into this. Instead I wrote the mini patch attached. At a first glance it does present a single list of tags for all monitors. Switching tags affects all monitors at the same time. Surely I missed something to reach the functionality of [1] :-) Cheers Thomas [1] http://dwm.suckless.org/patches/single_tagset
diff -ur ../dwm-6.0/dwm.c ./dwm.c --- ../dwm-6.0.1/dwm.c 2011-12-19 16:02:46.000000000 +0100 +++ ./dwm.c 2012-11-04 19:27:41.000000000 +0100 @@ -1872,9 +1872,14 @@ if(n <= nn) { for(i = 0; i < (nn - n); i++) { /* new monitors available */ for(m = mons; m && m->next; m = m->next); - if(m) + if(m) { m->next = createmon(); - else + + /* + * show status bar only for the first monitor (if at all) + */ + m->next->showbar = 0; + } else mons = createmon(); } for(i = 0, m = mons; i < nn && m; m = m->next, i++) @@ -2043,13 +2048,17 @@ void view(const Arg *arg) { - if((arg->ui & TAGMASK) == selmon->tagset[selmon->seltags]) - return; - selmon->seltags ^= 1; /* toggle sel tagset */ - if(arg->ui & TAGMASK) - selmon->tagset[selmon->seltags] = arg->ui & TAGMASK; - focus(NULL); - arrange(selmon); + Monitor *selmoni; + + for(selmoni = mons; selmoni; selmoni = selmoni->next) { + if((arg->ui & TAGMASK) == selmoni->tagset[selmoni->seltags]) + return; + selmoni->seltags ^= 1; /* toggle sel tagset */ + if(arg->ui & TAGMASK) + selmoni->tagset[selmoni->seltags] = arg->ui & TAGMASK; + focus(NULL); + arrange(selmoni); + } } Client *