diff -r 0be0474bce7a cmd/wm/area.c --- a/cmd/wm/area.c Sun Jul 16 15:35:40 2006 +0200 +++ b/cmd/wm/area.c Fri Jul 28 13:29:57 2006 +0200 @@ -45,7 +45,10 @@ create_area(View *v, Area *pos, unsigned a->view = v; a->id = id++; a->rect = screen->rect; - a->rect.height = screen->rect.height - screen->brect.height; + if(def.bar) + a->rect.height = screen->rect.height - screen->brect.height; + else + a->rect.height = screen->rect.height; a->mode = def.colmode; a->rect.width = w; a->frame = nil; diff -r 0be0474bce7a cmd/wm/bar.c --- a/cmd/wm/bar.c Sun Jul 16 15:35:40 2006 +0200 +++ b/cmd/wm/bar.c Fri Jul 28 13:29:57 2006 +0200 @@ -62,7 +62,8 @@ resize_bar(WMScreen *s) s->brect.y = s->rect.height - s->brect.height; XMoveResizeWindow(blz.dpy, s->barwin, s->brect.x, s->brect.y, s->brect.width, s->brect.height); XSync(blz.dpy, False); - draw_bar(s); + if(def.bar) + draw_bar(s); for(v=view; v; v=v->next) arrange_view(v); diff -r 0be0474bce7a cmd/wm/client.c --- a/cmd/wm/client.c Sun Jul 16 15:35:40 2006 +0200 +++ b/cmd/wm/client.c Fri Jul 28 13:29:57 2006 +0200 @@ -89,7 +89,7 @@ create_client(Window w, XWindowAttribute Client **t, *c = (Client *) cext_emallocz(sizeof(Client)); XSetWindowAttributes fwa; long msize; - unsigned int i; + unsigned int i, barh; static unsigned int id = 1; c->id = id++; @@ -118,9 +118,10 @@ create_client(Window w, XWindowAttribute SubstructureRedirectMask | SubstructureNotifyMask | ExposureMask | ButtonPressMask | PointerMotionMask | ButtonReleaseMask | KeyPressMask; + barh = def.framebars ? blitz_labelh(&def.font) : 0; c->framewin = XCreateWindow(blz.dpy, blz.root, c->rect.x, c->rect.y, c->rect.width + 2 * def.border, - c->rect.height + def.border + blitz_labelh(&def.font), 0, + c->rect.height + def.border + barh, 0, DefaultDepth(blz.dpy, blz.screen), CopyFromParent, DefaultVisual(blz.dpy, blz.screen), CWOverrideRedirect | CWBackPixmap | CWEventMask, &fwa); @@ -312,12 +313,13 @@ gravitate_client(Client *c, Bool invert) case NorthWestGravity: case NorthGravity: case NorthEastGravity: - dy = blitz_labelh(&def.font); + if(def.framebars) + dy = blitz_labelh(&def.font); break; case EastGravity: case CenterGravity: case WestGravity: - dy = -(c->rect.height / 2) + blitz_labelh(&def.font); + dy = -(c->rect.height / 2) + def.framebars ? blitz_labelh(&def.font) : 0; break; case SouthEastGravity: case SouthGravity: @@ -436,7 +438,11 @@ match_sizehints(Client *c, XRectangle *r { XSizeHints *s = &c->size; unsigned int dx = 2 * def.border; - unsigned int dy = def.border + blitz_labelh(&def.font); + unsigned int dy; + if(def.framebars) + dy = def.border + blitz_labelh(&def.font); + else + dy = 2 * def.border; unsigned int hdiff, wdiff; if(floating && (s->flags & PMinSize)) { @@ -520,13 +526,15 @@ resize_client(Client *c, XRectangle *r, if((f->area->mode != Colstack) || (f->area->sel == f)) match_sizehints(c, &c->sel->rect, floating, stickycorner); - max_height = screen->rect.height - blitz_labelh(&def.font); + max_height = screen->rect.height; + if(def.framebars) + max_height -= blitz_labelh(&def.font); if(!ignore_xcall) { if(floating) { if((c->rect.width == screen->rect.width) && (c->rect.height == screen->rect.height)) { f->rect.x = -def.border; - f->rect.y = -blitz_labelh(&def.font); + f->rect.y = def.framebars ? -blitz_labelh(&def.font) : -def.border; }else{ if(f->rect.height > max_height) f->rect.height = max_height; @@ -551,10 +559,13 @@ resize_client(Client *c, XRectangle *r, } c->rect.x = def.border; - c->rect.y = blitz_labelh(&def.font); + c->rect.y = def.framebars ? blitz_labelh(&def.font) : def.border; if((f->area->sel == f) || (f->area->mode != Colstack)) { c->rect.width = f->rect.width - 2 * def.border; - c->rect.height = f->rect.height - def.border - blitz_labelh(&def.font); + if(def.framebars) + c->rect.height = f->rect.height - def.border - blitz_labelh(&def.font); + else + c->rect.height = f->rect.height - 2 * def.border; } if(!ignore_xcall) { XMoveResizeWindow(blz.dpy, c->win, c->rect.x, c->rect.y, diff -r 0be0474bce7a cmd/wm/event.c --- a/cmd/wm/event.c Sun Jul 16 15:35:40 2006 +0200 +++ b/cmd/wm/event.c Fri Jul 28 13:29:57 2006 +0200 @@ -151,17 +151,19 @@ configurerequest(XEvent *e) frect=&c->sel->revert; if(c->rect.width >= screen->rect.width && c->rect.height >= screen->rect.height) { - frect->y = wc.y = -blitz_labelh(&def.font); + frect->y = wc.y = def.framebars ? -blitz_labelh(&def.font) : -def.border; frect->x = wc.x = -def.border; } else { - frect->y = wc.y = c->rect.y - blitz_labelh(&def.font); + frect->y = wc.y = c->rect.y - def.framebars ? blitz_labelh(&def.font): def.border; frect->x = wc.x = c->rect.x - def.border; } frect->width = wc.width = c->rect.width + 2 * def.border; - frect->height = wc.height = c->rect.height + def.border - + blitz_labelh(&def.font); - wc.border_width = 1; + if(def.framebars) + frect->height = wc.height = c->rect.height + def.border + + blitz_labelh(&def.font); + else + frect->height = wc.height = c->rect.height + 2 * def.border; wc.sibling = None; wc.stack_mode = ev->detail; if(c->sel->area->view != screen->sel) @@ -180,9 +182,15 @@ configurerequest(XEvent *e) if(c && c->frame) { wc.x = def.border; - wc.y = blitz_labelh(&def.font); wc.width = c->sel->rect.width - 2 * def.border; - wc.height = c->sel->rect.height - def.border - blitz_labelh(&def.font); + if(def.framebars) { + wc.y = blitz_labelh(&def.font); + wc.height = c->sel->rect.height - def.border - blitz_labelh(&def.font); + } + else { + wc.y = def.border; + wc.height = c->sel->rect.height - 2 * def.border; + } } wc.border_width = 0; @@ -245,8 +253,10 @@ expose(XEvent *e) static Frame *f; if(ev->count == 0) { - if(ev->window == screen->barwin) - draw_bar(screen); + if(ev->window == screen->barwin) { + if(def.bar) + draw_bar(screen); + } else if((f = frame_of_win(ev->window)) && f->view == screen->sel) draw_frame(f); } diff -r 0be0474bce7a cmd/wm/frame.c --- a/cmd/wm/frame.c Sun Jul 16 15:35:40 2006 +0200 +++ b/cmd/wm/frame.c Fri Jul 28 13:29:57 2006 +0200 @@ -25,7 +25,10 @@ create_frame(Client *c, View *v) else{ f->revert = f->rect = c->rect; f->revert.width = f->rect.width += 2 * def.border; - f->revert.height = f->rect.height += def.border + blitz_labelh(&def.font); + if(def.framebars) + f->revert.height = f->rect.height += def.border + blitz_labelh(&def.font); + else + f->revert.height = f->rect.height += 2 * def.border; } f->collapsed = False; @@ -104,26 +107,28 @@ draw_frame(Frame *f) if(def.border) { f->tile.rect = f->rect; f->tile.rect.x = f->tile.rect.y = 0; + blitz_draw_tile(&f->tile); } - f->grabbox.rect = f->tile.rect; - f->grabbox.rect.height = blitz_labelh(&def.font); - f->grabbox.rect.width = def.font.height; + if(def.framebars) { + f->grabbox.rect = f->tile.rect; + f->grabbox.rect.height = blitz_labelh(&def.font); + f->grabbox.rect.width = def.font.height; + + f->titlebar.rect = f->grabbox.rect; + f->titlebar.rect.x = f->grabbox.rect.x + f->grabbox.rect.width; + f->titlebar.rect.width = f->rect.width / 2; + + /* tag bar */ + f->tagbar.rect = f->grabbox.rect; + f->tagbar.rect.x = f->titlebar.rect.x + f->titlebar.rect.width; + f->tagbar.rect.width = + f->rect.width - (f->grabbox.rect.width + f->titlebar.rect.width); + blitz_draw_tile(&f->grabbox); + blitz_draw_input(&f->tagbar); + blitz_draw_label(&f->titlebar, f->client->name); + } - f->titlebar.rect = f->grabbox.rect; - f->titlebar.rect.x = f->grabbox.rect.x + f->grabbox.rect.width; - f->titlebar.rect.width = f->rect.width / 2; - - /* tag bar */ - f->tagbar.rect = f->grabbox.rect; - f->tagbar.rect.x = f->titlebar.rect.x + f->titlebar.rect.width; - f->tagbar.rect.width = - f->rect.width - (f->grabbox.rect.width + f->titlebar.rect.width); - - blitz_draw_tile(&f->tile); - blitz_draw_tile(&f->grabbox); - blitz_draw_input(&f->tagbar); - blitz_draw_label(&f->titlebar, f->client->name); XCopyArea(blz.dpy, pmap, f->client->framewin, f->client->gc, 0, 0, f->rect.width, f->rect.height, 0, 0); XSync(blz.dpy, False); diff -r 0be0474bce7a cmd/wm/fs.c --- a/cmd/wm/fs.c Sun Jul 16 15:35:40 2006 +0200 +++ b/cmd/wm/fs.c Fri Jul 28 13:29:57 2006 +0200 @@ -298,6 +298,12 @@ message_root(char *message) def.mod = mod; if(view) restack_view(screen->sel); + }else if(!strncmp(message, "framebars ", 10)) { + message += 10; + if(*message == '0') + def.framebars = 0; + else + def.framebars = 1; }else return Ebadcmd; @@ -315,6 +321,7 @@ read_root_ctl() i += snprintf(&buffer[i], (BUFFER_SIZE - i), "font %s\n", def.font.fontstr); i += snprintf(&buffer[i], (BUFFER_SIZE - i), "grabmod %s\n", def.grabmod); i += snprintf(&buffer[i], (BUFFER_SIZE - i), "border %d\n", def.border); + i += snprintf(&buffer[i], (BUFFER_SIZE - i), "framebars %d\n", def.framebars); return buffer; } @@ -826,7 +833,8 @@ fs_remove(P9Req *r) { return respond(r, Enoperm); case FsFBar: destroy_bar(f->next->bar_p, f->bar); - draw_bar(screen); + if(def.bar) + draw_bar(screen); respond(r, nil); break; } @@ -865,7 +873,8 @@ fs_clunk(P9Req *r) { while(i > 0 && buf[i - 1] == '\n') buf[--i] = '\0'; cext_strlcpy(f->bar->text, buf, sizeof(f->bar->text)); - draw_bar(screen); + if(def.bar) + draw_bar(screen); break; case FsFEvent: for(fl=&pending_event_fids; *fl; fl=&(*fl)->next) diff -r 0be0474bce7a cmd/wm/view.c --- a/cmd/wm/view.c Sun Jul 16 15:35:40 2006 +0200 +++ b/cmd/wm/view.c Fri Jul 28 13:29:57 2006 +0200 @@ -263,7 +263,10 @@ arrange_view(View *v) for(a=v->area->next; a; a=a->next) { a->rect.x = xoff; a->rect.y = 0; - a->rect.height = screen->rect.height - screen->brect.height; + if(def.bar) + a->rect.height = screen->rect.height - screen->brect.height; + else + a->rect.height = screen->rect.height; xoff += a->rect.width; arrange_column(a, False); } diff -r 0be0474bce7a cmd/wm/wm.c --- a/cmd/wm/wm.c Sun Jul 16 15:35:40 2006 +0200 +++ b/cmd/wm/wm.c Fri Jul 28 13:29:57 2006 +0200 @@ -27,7 +27,9 @@ static void static void usage() { - fputs("usage: wmiiwm -a
[-r ] [-v]\n", stderr); + fputs("usage: wmiiwm -a
[-r ] [-v] [-b]\n", stderr); + fputs(" -v: display version\n", stderr); + fputs(" -b: disable bar\n", stderr); exit(1); } @@ -209,6 +211,7 @@ main(int argc, char *argv[]) struct passwd *passwd; XSetWindowAttributes wa; + def.bar = 1; /* command line args */ for(i = 1; (i < argc) && (argv[i][0] == '-'); i++) { switch (argv[i][1]) { @@ -221,6 +224,9 @@ main(int argc, char *argv[]) address = argv[++i]; else usage(); + break; + case 'b': + def.bar = 0; break; case 'r': if(i + 1 < argc) @@ -324,6 +330,7 @@ main(int argc, char *argv[]) def.keyssz = 0; def.font.fontstr = cext_estrdup(BLITZ_FONT); def.border = 2; + def.framebars = 1; def.colmode = Coldefault; cext_strlcpy(def.selcolor.colstr, BLITZ_SELCOLORS, sizeof(def.selcolor.colstr)); blitz_loadcolor(&blz, &def.selcolor); @@ -387,8 +394,10 @@ main(int argc, char *argv[]) s->bbrush.font = &def.font; s->bbrush.border = True; - draw_bar(s); - XMapRaised(blz.dpy, s->barwin); + if(def.bar) { + draw_bar(s); + XMapRaised(blz.dpy, s->barwin); + } } screen = &screens[0]; diff -r 0be0474bce7a cmd/wm/wm.h --- a/cmd/wm/wm.h Sun Jul 16 15:35:40 2006 +0200 +++ b/cmd/wm/wm.h Fri Jul 28 13:29:57 2006 +0200 @@ -159,6 +159,8 @@ struct { char grabmod[5]; unsigned long mod; int colmode; + int framebars; + int bar; } def; struct WMScreen { diff -r 0be0474bce7a cmd/wm/wmiiwm.1 --- a/cmd/wm/wmiiwm.1 Sun Jul 16 15:35:40 2006 +0200 +++ b/cmd/wm/wmiiwm.1 Fri Jul 28 13:29:57 2006 +0200 @@ -6,6 +6,7 @@ wmiiwm \- window manager improved 2 (cor .B \-a .I
.RB [ \-c ] +.RB [ \-b ] .RB [ \-v ] .SH DESCRIPTION @@ -70,6 +71,9 @@ 0. .TP .B \-v Prints version information to stdout, then exits. +.TP +.B \-b +Disables bar. .SS Terminology .TP 2 Display