about summary refs log tree commit diff stats
BranchCommit messageAuthorAge
bongkeys: st-xterm compatAcid Bong20 months
masterbump version to 6.4Hiltjo Posthuma2 years
musldmenumon fixAcid Bong21 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. Garbe17 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
/span>h = b->font.ascent + b->font.descent; y = b->y + (b->h / 2) - (h / 2) + b->font.ascent; x = b->x + (h / 2); /* shorten text if necessary */ while(len && (w = textnw(&b->font, buf, len)) > b->w - h) buf[--len] = 0; if(w > b->w) return; /* too long */ gcv.foreground = b->fg; gcv.background = b->bg; if(b->font.set) { XChangeGC(dpy, b->gc, GCForeground | GCBackground, &gcv); XmbDrawImageString(dpy, b->drawable, b->font.set, b->gc, x, y, buf, len); } else { gcv.font = b->font.xfont->fid; XChangeGC(dpy, b->gc, GCForeground | GCBackground | GCFont, &gcv); XDrawImageString(dpy, b->drawable, b->gc, x, y, buf, len); } } static unsigned long xloadcolors(Display *dpy, Colormap cmap, const char *colstr) { XColor color; XAllocNamedColor(dpy, cmap, colstr, &color, &color); return color.pixel; } void loadcolors(Display *dpy, int screen, Brush *b, const char *bg, const char *fg, const char *border) { Colormap cmap = DefaultColormap(dpy, screen); b->bg = xloadcolors(dpy, cmap, bg); b->fg = xloadcolors(dpy, cmap, fg); b->border = xloadcolors(dpy, cmap, border); } unsigned int textnw(Fnt *font, char *text, unsigned int len) { XRectangle r; if(font->set) { XmbTextExtents(font->set, text, len, NULL, &r); return r.width; } return XTextWidth(font->xfont, text, len); } unsigned int textw(Fnt *font, char *text) { return textnw(font, text, strlen(text)); } unsigned int texth(Fnt *font) { return font->height + 4; } void loadfont(Display *dpy, Fnt *font, const char *fontstr) { char **missing, *def; int n; missing = NULL; def = "?"; setlocale(LC_ALL, ""); if(font->set) XFreeFontSet(dpy, font->set); font->set = XCreateFontSet(dpy, fontstr, &missing, &n, &def); if(missing) { while(n--) fprintf(stderr, "missing fontset: %s\n", missing[n]); XFreeStringList(missing); if(font->set) { XFreeFontSet(dpy, font->set); font->set = NULL; } } if(font->set) { XFontSetExtents *font_extents; XFontStruct **xfonts; char **font_names; unsigned int i; font->ascent = font->descent = 0; font_extents = XExtentsOfFontSet(font->set); n = XFontsOfFontSet(font->set, &xfonts, &font_names); for(i = 0, font->ascent = 0, font->descent = 0; i < n; i++) { if(font->ascent < (*xfonts)->ascent) font->ascent = (*xfonts)->ascent; if(font->descent < (*xfonts)->descent) font->descent = (*xfonts)->descent; xfonts++; } } else { if(font->xfont) XFreeFont(dpy, font->xfont); font->xfont = NULL; font->xfont = XLoadQueryFont(dpy, fontstr); if (!font->xfont) font->xfont = XLoadQueryFont(dpy, "fixed"); if (!font->xfont) error("error, cannot load 'fixed' font\n"); font->ascent = font->xfont->ascent; font->descent = font->xfont->descent; } font->height = font->ascent + font->descent; }