diff -r f8f6841b3c1c config.def.h
--- a/config.def.h	Mon Aug 09 11:59:13 2010 +0100
+++ b/config.def.h	Thu Nov 25 14:13:50 2010 +0100
@@ -7,6 +7,7 @@
 static const char *after       = ">";
 static const int tabwidth      = 200;
 static const Bool foreground   = False;
+static const Bool topbar       = False;
 
 #define MODKEY ControlMask
 static Key keys[] = { \
diff -r f8f6841b3c1c tabbed.c
--- a/tabbed.c	Mon Aug 09 11:59:13 2010 +0100
+++ b/tabbed.c	Thu Nov 25 14:13:50 2010 +0100
@@ -237,7 +237,7 @@
 
 	if((c = getclient(ev->window))) {
 		wc.x = 0;
-		wc.y = bh;
+		wc.y = topbar ? bh : 0;
 		wc.width = ww;
 		wc.height = wh - bh;
 		wc.border_width = 0;
@@ -286,7 +286,7 @@
 		dc.w = ww;
 		XFetchName(dpy, win, &name);
 		drawtext(name ? name : "", dc.norm);
-		XCopyArea(dpy, dc.drawable, win, dc.gc, 0, 0, ww, bh, 0, 0);
+		XCopyArea(dpy, dc.drawable, win, dc.gc, 0, 0, ww, bh, 0, topbar ? 0 : wh - bh);
 		XSync(dpy, False);
 		return;
 	}
@@ -323,7 +323,7 @@
 		dc.x += dc.w;
 		c->tabx = dc.x;
 	}
-	XCopyArea(dpy, dc.drawable, win, dc.gc, 0, 0, ww, bh, 0, 0);
+	XCopyArea(dpy, dc.drawable, win, dc.gc, 0, 0, ww, bh, 0, topbar ? 0 : wh - bh);
 	XSync(dpy, False);
 }
 
@@ -569,7 +569,7 @@
 		XEvent e;
 
 		XWithdrawWindow(dpy, w, 0);
-		XReparentWindow(dpy, w, win, 0, bh);
+		XReparentWindow(dpy, w, win, 0, topbar ? bh : 0);
 		XSelectInput(dpy, w, PropertyChangeMask|StructureNotifyMask|EnterWindowMask);
 		XSync(dpy, False);
 		for(i = 0; i < LENGTH(keys); i++) {
@@ -639,7 +639,7 @@
 	XWindowChanges wc;
 
 	ce.x = 0;
-	ce.y = bh;
+	ce.y = topbar ? bh : 0;
 	ce.width = wc.width = w;
 	ce.height = wc.height = h;
 	ce.type = ConfigureNotify;
