Add the -f flag, which tells tabbed to run the given command again, in case the… | |
git clone git://git.suckless.org/tabbed | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit 5e1c53ad3cecdfcb773e606a65ae853a524d8136 | |
parent cc1b72371ad1b5f78817f969fe9416dee8eed916 | |
Author: Christoph Lohmann <[email protected]> | |
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: | |
M tabbed.1 | 4 ++++ | |
M 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); | |