about summary refs log tree commit diff stats
BranchCommit messageAuthorAge
bongkeys: st-xterm compatAcid Bong21 months
masterbump version to 6.4Hiltjo Posthuma2 years
musldmenumon fixAcid Bong22 months
 
TagDownloadAuthorAge
6.4dwm-6.4.tar.gz  Hiltjo Posthuma2 years
6.3dwm-6.3.tar.gz  Hiltjo Posthuma3 years
6.2dwm-6.2.tar.gz  Anselm R Garbe6 years
6.1dwm-6.1.tar.gz  Hiltjo Posthuma9 years
6.0dwm-6.0.tar.gz  anselm@garbe.us13 years
5.9dwm-5.9.tar.gz  garbeam@gmail.com13 years
5.8.2dwm-5.8.2.tar.gz  Anselm R Garbe14 years
5.8.1dwm-5.8.1.tar.gz  Anselm R Garbe14 years
5.8dwm-5.8.tar.gz  anselm@garbe.us14 years
5.7.2dwm-5.7.2.tar.gz  Anselm R Garbe15 years
5.7.1dwm-5.7.1.tar.gz  Anselm R Garbe15 years
5.7dwm-5.7.tar.gz  Anselm R Garbe15 years
5.6.1dwm-5.6.1.tar.gz  Anselm R Garbe15 years
5.6dwm-5.6.tar.gz  Anselm R Garbe15 years
5.5dwm-5.5.tar.gz  Anselm R Garbe16 years
5.4.1dwm-5.4.1.tar.gz  a@null16 years
5.4dwm-5.4.tar.gz  a@null16 years
5.3.1dwm-5.3.1.tar.gz  Anselm R Garbe16 years
5.3dwm-5.3.tar.gz  Anselm R Garbe16 years
5.2dwm-5.2.tar.gz  Anselm R Garbe16 years
5.1dwm-5.1.tar.gz  Anselm R Garbe16 years
5.0dwm-5.0.tar.gz  Anselm R Garbe16 years
4.9dwm-4.9.tar.gz  Anselm R Garbe17 years
4.8dwm-4.8.tar.gz  Anselm R Garbe17 years
4.7dwm-4.7.tar.gz  Anselm R. Garbe17 years
4.6dwm-4.6.tar.gz  arg@suckless.org17 years
4.5dwm-4.5.tar.gz  Anselm R. Garbe17 years
4.4.1dwm-4.4.1.tar.gz  Anselm R. Garbe17 years
4.4dwm-4.4.tar.gz  Anselm R. Garbe17 years
4.3dwm-4.3.tar.gz  arg@f00b4r17 years
4.2dwm-4.2.tar.gz  Anselm R. Garbe17 years
4.1dwm-4.1.tar.gz  Anselm R. Garbe18 years
4.0dwm-4.0.tar.gz  Anselm R. Garbe18 years
3.9dwm-3.9.tar.gz  Anselm R. Garbe18 years
3.8dwm-3.8.tar.gz  Anselm R. Garbe18 years
3.7dwm-3.7.tar.gz  Anselm R. Garbe18 years
3.6.1dwm-3.6.1.tar.gz  Anselm R. Garbe18 years
3.6dwm-3.6.tar.gz  Anselm R. Garbe18 years
3.5dwm-3.5.tar.gz  Anselm R. Garbe18 years
3.4dwm-3.4.tar.gz  Anselm R. Garbe18 years
3.3dwm-3.3.tar.gz  Anselm R. Garbe18 years
3.2.2dwm-3.2.2.tar.gz  Anselm R. Garbe18 years
3.2.1dwm-3.2.1.tar.gz  Anselm R. Garbe18 years
3.2dwm-3.2.tar.gz  Anselm R. Garbe18 years
3.1dwm-3.1.tar.gz  Anselm R. Garbe18 years
3.0dwm-3.0.tar.gz  Anselm R. Garbe18 years
2.9dwm-2.9.tar.gz  Anselm R. Garbe18 years
2.8dwm-2.8.tar.gz  arg@mig2918 years
2.7dwm-2.7.tar.gz  arg@mig2918 years
2.6dwm-2.6.tar.gz  arg@mig2918 years
2.5.1dwm-2.5.1.tar.gz  arg@mig2918 years
2.5dwm-2.5.tar.gz  arg@mig2918 years
2.4dwm-2.4.tar.gz  arg@mig2918 years
2.3dwm-2.3.tar.gz  arg@mig2918 years
2.2dwm-2.2.tar.gz  arg@mig2918 years
2.1dwm-2.1.tar.gz  arg@mig2918 years
2.0dwm-2.0.tar.gz  arg@mig2918 years
1.9dwm-1.9.tar.gz  Anselm R. Garbe18 years
1.8dwm-1.8.tar.gz  Anselm R. Garbe18 years
1.7.1dwm-1.7.1.tar.gz  Anselm R. Garbe18 years
1.7dwm-1.7.tar.gz  arg@mmvi18 years
1.6dwm-1.6.tar.gz  arg@mmvi18 years
1.5dwm-1.5.tar.gz  Anselm R. Garbe18 years
1.4dwm-1.4.tar.gz  Anselm R. Garbe18 years
1.3dwm-1.3.tar.gz  Anselm R. Garbe18 years
1.2dwm-1.2.tar.gz  Anselm R. Garbe18 years
1.1dwm-1.1.tar.gz  Anselm R. Garbe18 years
1.0dwm-1.0.tar.gz  Anselm R. Garbe18 years
0.9dwm-0.9.tar.gz  Anselm R.Garbe18 years
0.8dwm-0.8.tar.gz  Anselm R.Garbe18 years
0.7dwm-0.7.tar.gz  arg@10ksloc.org18 years
0.6dwm-0.6.tar.gz  arg@10ksloc.org18 years
0.5dwm-0.5.tar.gz  arg@10ksloc.org18 years
0.4dwm-0.4.tar.gz  arg@10ksloc.org18 years
0.3dwm-0.3.tar.gz  arg@10ksloc.org18 years
0.2dwm-0.2.tar.gz  Anselm R. Garbe18 years
0.1dwm-0.1.tar.gz  Anselm R. Garbe18 years
>len && (w = textnw(buf, len)) > dc.w - h) buf[--len] = 0; if(len < olen) { if(len > 1) buf[len - 1] = '.'; if(len > 2) buf[len - 2] = '.'; if(len > 3) buf[len - 3] = '.'; } if(w > dc.w) return; /* too long */ gcv.foreground = col[ColFG]; if(dc.font.set) { XChangeGC(dpy, dc.gc, GCForeground, &gcv); XmbDrawString(dpy, dc.drawable, dc.font.set, dc.gc, x, y, buf, len); } else { gcv.font = dc.font.xfont->fid; XChangeGC(dpy, dc.gc, GCForeground | GCFont, &gcv); XDrawString(dpy, dc.drawable, dc.gc, x, y, buf, len); } x = (h + 2) / 4; r.x = dc.x + 1; r.y = dc.y + 1; if(filledsquare) { r.width = r.height = x + 1; XFillRectangles(dpy, dc.drawable, dc.gc, &r, 1); } else if(emptysquare) { r.width = r.height = x; XDrawRectangles(dpy, dc.drawable, dc.gc, &r, 1); } } /* extern */ void drawstatus(void) { int i, x; dc.x = dc.y = 0; for(i = 0; i < ntags; i++) { dc.w = textw(tags[i]); if(seltag[i]) drawtext(tags[i], dc.sel, sel && sel->tags[i], isoccupied(i)); else drawtext(tags[i], dc.norm, sel && sel->tags[i], isoccupied(i)); dc.x += dc.w; } dc.w = bmw; drawtext(arrange == dofloat ? FLOATSYMBOL : TILESYMBOL, dc.norm, False, False); x = dc.x + dc.w; dc.w = textw(stext); dc.x = sw - dc.w; if(dc.x < x) { dc.x = x; dc.w = sw - x; } drawtext(stext, dc.norm, False, False); if((dc.w = dc.x - x) > bh) { dc.x = x; drawtext(sel ? sel->name : NULL, sel ? dc.sel : dc.norm, False, False); } XCopyArea(dpy, dc.drawable, barwin, dc.gc, 0, 0, sw, bh, 0, 0); XSync(dpy, False); } unsigned long getcolor(const char *colstr) { Colormap cmap = DefaultColormap(dpy, screen); XColor color; if(!XAllocNamedColor(dpy, cmap, colstr, &color, &color)) eprint("error, cannot allocate color '%s'\n", colstr); return color.pixel; } void setfont(const char *fontstr) { char *def, **missing; int i, n; missing = NULL; if(dc.font.set) XFreeFontSet(dpy, dc.font.set); dc.font.set = XCreateFontSet(dpy, fontstr, &missing, &n, &def); if(missing) { while(n--) fprintf(stderr, "missing fontset: %s\n", missing[n]); XFreeStringList(missing); } if(dc.font.set) { XFontSetExtents *font_extents; XFontStruct **xfonts; char **font_names; dc.font.ascent = dc.font.descent = 0; font_extents = XExtentsOfFontSet(dc.font.set); n = XFontsOfFontSet(dc.font.set, &xfonts, &font_names); for(i = 0, dc.font.ascent = 0, dc.font.descent = 0; i < n; i++) { if(dc.font.ascent < (*xfonts)->ascent) dc.font.ascent = (*xfonts)->ascent; if(dc.font.descent < (*xfonts)->descent) dc.font.descent = (*xfonts)->descent; xfonts++; } } else { if(dc.font.xfont) XFreeFont(dpy, dc.font.xfont); dc.font.xfont = NULL; if(!(dc.font.xfont = XLoadQueryFont(dpy, fontstr))) eprint("error, cannot load font: '%s'\n", fontstr); dc.font.ascent = dc.font.xfont->ascent; dc.font.descent = dc.font.xfont->descent; } dc.font.height = dc.font.ascent + dc.font.descent; } unsigned int textw(const char *text) { return textnw(text, strlen(text)) + dc.font.height; }