diff --git a/cmd/wmii/bar.c b/cmd/wmii/bar.c index a8b683d..3ddccfa 100644 --- a/cmd/wmii/bar.c +++ b/cmd/wmii/bar.c @@ -20,7 +20,7 @@ bar_init(WMScreen *s) { } s->brect = s->r; - s->brect.min.y = s->brect.max.y - labelh(def.font); + s->brect.min.y = s->brect.max.y - labelh(def.barfont); wa.override_redirect = 1; wa.background_pixmap = ParentRelative; @@ -42,7 +42,7 @@ void bar_resize(WMScreen *s) { s->brect = s->r; - s->brect.min.y = s->r.max.y - labelh(def.font); + s->brect.min.y = s->r.max.y - labelh(def.barfont); reshapewin(s->barwin, s->brect); /* FIXME: view_arrange. */ } @@ -126,9 +126,9 @@ bar_draw(WMScreen *s) { foreach_bar(s, b) { b->r.min = ZP; b->r.max.y = Dy(s->brect); - b->r.max.x = def.font->height & ~1; + b->r.max.x = def.barfont->height & ~1; if(b->text && strlen(b->text)) - b->r.max.x += textwidth(def.font, b->text); + b->r.max.x += textwidth(def.barfont, b->text); width += Dx(b->r); } @@ -174,7 +174,7 @@ bar_draw(WMScreen *s) { if(b == s->bar[BRight]) align = East; fill(disp.ibuf, b->r, b->col.bg); - drawstring(disp.ibuf, def.font, b->r, align, b->text, b->col.fg); + drawstring(disp.ibuf, def.barfont, b->r, align, b->text, b->col.fg); border(disp.ibuf, b->r, 1, b->col.border); } copyimage(s->barwin, r, disp.ibuf, ZP); diff --git a/cmd/wmii/dat.h b/cmd/wmii/dat.h index 3414e6e..3346dbd 100644 --- a/cmd/wmii/dat.h +++ b/cmd/wmii/dat.h @@ -18,6 +18,7 @@ #include #define FONT "-*-fixed-medium-r-*-*-13-*-*-*-*-*-*-*" +#define BARFONT "-*-fixed-medium-r-*-*-13-*-*-*-*-*-*-*" #define FOCUSCOLORS "#ffffff #335577 #447799" #define NORMCOLORS "#222222 #eeeeee #666666" @@ -308,6 +309,7 @@ EXTERN struct { CTuple focuscolor; CTuple normcolor; Font* font; + Font* barfont; char* keys; uint keyssz; Ruleset tagrules; diff --git a/cmd/wmii/main.c b/cmd/wmii/main.c index 43eb285..6c4f435 100644 --- a/cmd/wmii/main.c +++ b/cmd/wmii/main.c @@ -396,6 +396,7 @@ extern int fmtevent(Fmt*); def.border = 1; def.colmode = Colstack; def.font = loadfont(FONT); + def.barfont = loadfont(BARFONT); def.incmode = ISqueeze; def.mod = Mod1Mask; diff --git a/cmd/wmii/message.c b/cmd/wmii/message.c index cf339e5..6d4e273 100644 --- a/cmd/wmii/message.c +++ b/cmd/wmii/message.c @@ -27,6 +27,7 @@ enum { LFULLSCREEN, LURGENT, LBAR, + LBARFONT, LBORDER, LCLIENT, LCOLMODE, @@ -60,6 +61,7 @@ char *symtab[] = { "Fullscreen", "Urgent", "bar", + "barfont", "border", "client", "colmode", @@ -459,6 +461,17 @@ message_root(void *p, IxpMsg *m) { return Ebadvalue; view_update(selview); break; + case LBARFONT: + fn = loadfont(m->pos); + if(fn) { + freefont(def.barfont); + def.barfont = fn; + for(n=0; n < nscreens; n++) + bar_resize(screens[n]); + }else + ret = "can't load font"; + view_update(selview); + break; case LBORDER: if(!getulong(msg_getword(m), &n)) return Ebadvalue; @@ -554,6 +567,7 @@ readctl_root(void) { bufprint("\n"); } bufprint("focuscolors %s\n", def.focuscolor.colstr); + bufprint("barfont %s\n", def.barfont->name); bufprint("font %s\n", def.font->name); bufprint("grabmod %s\n", def.grabmod); bufprint("incmode %s\n", incmodetab[screen->barpos]);