+ monitors[i].id = i;
+ monitors[i].seltags = emallocz(sizeof initags);
+ monitors[i].prevtags = emallocz(sizeof initags);
+
+ memcpy(monitors[i].seltags, initags, sizeof initags);
+ memcpy(monitors[i].prevtags, initags, sizeof initags);
+
+ /* init appearance */
+ monitors[i].dc.norm[ColBorder] = getcolor(NORMBORDERCOLOR);
+ monitors[i].dc.norm[ColBG] = getcolor(NORMBGCOLOR);
+ monitors[i].dc.norm[ColFG] = getcolor(NORMFGCOLOR);
+ monitors[i].dc.sel[ColBorder] = getcolor(SELBORDERCOLOR);
+ monitors[i].dc.sel[ColBG] = getcolor(SELBGCOLOR);
+ monitors[i].dc.sel[ColFG] = getcolor(SELFGCOLOR);
+ initfont(&(monitors[i]), FONT);
+ monitors[i].dc.h = bh = monitors[i].dc.font.height + 2;
+
+ /* init layouts */
+ monitors[i].mwfact = MWFACT;
+ monitors[i].layout = &layouts[0];
+ for(blw = k = 0; k < LENGTH(layouts); k++) {
+ j = textw(&monitors[i], layouts[k].symbol);
+ if(j > blw)
+ blw = j;
+ }
+
+ bpos = BARPOS;
+ wa.override_redirect = 1;
+ wa.background_pixmap = ParentRelative;
+ wa.event_mask = ButtonPressMask | ExposureMask;
+
+ /* init bars */
+ monitors[i].barwin = XCreateWindow(dpy, root, monitors[i].sx, monitors[i].sy, monitors[i].sw, bh, 0,
+ DefaultDepth(dpy, screen), CopyFromParent, DefaultVisual(dpy, screen),
+ CWOverrideRedirect | CWBackPixmap | CWEventMask, &wa);
+ XDefineCursor(dpy, monitors[i].barwin, cursor[CurNormal]);
+ updatebarpos(&monitors[i]);
+ XMapRaised(dpy, monitors[i].barwin);
+ strcpy(stext, "dwm-"VERSION);
+ monitors[i].dc.drawable = XCreatePixmap(dpy, root, monitors[i].sw, bh, DefaultDepth(dpy, screen));
+ g = XCreateGC(dpy, root, 0, 0);
+ monitors[i].dc.gc = XCreateGC(dpy, root, 0, 0);
+ XSetLineAttributes(dpy, monitors[i].dc.gc, 1, LineSolid, CapButt, JoinMiter);
+ if(!monitors[i].dc.font.set)
+ XSetFont(dpy, monitors[i].dc.gc, monitors[i].dc.font.xfont->fid);
+ }