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 *