diff options
author | Christoph Lohmann <20h@r-36.net> | 2012-11-26 14:55:26 +0100 |
---|---|---|
committer | Christoph Lohmann <20h@r-36.net> | 2012-11-26 14:55:26 +0100 |
commit | 5e1c53ad3cecdfcb773e606a65ae853a524d8136 (patch) | |
tree | 7f7165cc71b1d3a29f7b0e6e4d85b96383c8bd98 | |
parent | cc1b72371ad1b5f78817f969fe9416dee8eed916 (diff) |
Add the -f flag, which tells tabbed to run the given command again, in case
the last tab is closed.
-rw-r--r-- | tabbed.1 | 4 | ||||
-rw-r--r-- | tabbed.c | 16 |
2 files changed, 17 insertions, 3 deletions
@@ -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 @@ -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); |