tabbed

tab interface for application supporting Xembed
git clone git://git.suckless.org/tabbed
Log | Files | Refs | README | LICENSE

commit 5e1c53ad3cecdfcb773e606a65ae853a524d8136
parent cc1b72371ad1b5f78817f969fe9416dee8eed916
Author: Christoph Lohmann <20h@r-36.net>
Date:   Mon, 26 Nov 2012 14:55:26 +0100

Add the -f flag, which tells tabbed to run the given command again, in case
the last tab is closed.
Diffstat:
tabbed.1 | 4++++
tabbed.c | 16+++++++++++++---
2 files changed, 17 insertions(+), 3 deletions(-)

diff --git a/tabbed.1 b/tabbed.1 @@ -24,6 +24,10 @@ tabbed will just print its xid and run no command. .B \-d detaches tabbed from the terminal and prints its XID to stdout. .TP +.B \-f +fill up tabbed again by spawning the provided command, when the last tab is +closed. +.TP .B \-h will print the usage of tabbed. .TP diff --git a/tabbed.c b/tabbed.c @@ -145,7 +145,7 @@ static void (*handler[LASTEvent]) (const XEvent *) = { }; static int bh, wx, wy, ww, wh; static unsigned int numlockmask = 0; -static Bool running = True, nextfocus, doinitspawn = True; +static Bool running = True, nextfocus, doinitspawn = True, fillagain = False; static Display *dpy; static DC dc; static Atom wmatom[WMLast]; @@ -954,6 +954,11 @@ unmanage(int c) { focus(lastsel); } + if(nclients == 0) { + if(fillagain) + spawn(NULL); + } + drawbar(); XSync(dpy, False); } @@ -1023,7 +1028,7 @@ char *argv0; void usage(void) { - die("usage: %s [-dhsv] [-n name] [-r narg] command...\n", argv0); + die("usage: %s [-dfhsv] [-n name] [-r narg] command...\n", argv0); } int @@ -1034,6 +1039,9 @@ main(int argc, char *argv[]) { case 'd': detach = 1; break; + case 'f': + fillagain = 1; + break; case 'n': wmname = EARGF(usage()); break; @@ -1052,8 +1060,10 @@ main(int argc, char *argv[]) { usage(); } ARGEND; - if(argc < 1) + if(argc < 1) { doinitspawn = False; + fillagain = False; + } setcmd(argc, argv, replace);