Hi again, unfortunately, I attached the wrong patch. See the attached one for a correct version with barfont appearing in /ctl aswell.
Best regards, Michael
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 <x11.h>
#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]);
pgp9kOAgfainI.pgp
Description: PGP signature
