tabbed

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

commit c79e3392413da488eecb2769473989d0c2c861c9
parent 3d12c416b82e4dd0b41d627752a165cbfb96d59a
Author: Christoph Lohmann <20h@r-36.net>
Date:   Thu,  9 Feb 2012 17:39:33 +0100

Allow no automatic spawning of the command.
Diffstat:
Mtabbed.1 | 13++++++++++++-
Mtabbed.c | 17++++++++++++++---
2 files changed, 26 insertions(+), 4 deletions(-)

diff --git a/tabbed.1 b/tabbed.1 @@ -4,16 +4,27 @@ tabbed \- generic tabbed interface .SH SYNOPSIS .B tabbed .RB [ \-d ] +.RB [ \-h ] +.RB [ \-s ] .RB [ \-v ] .IR command ... .SH DESCRIPTION .B tabbed -is a simple tabbed container for applications which support XEmbed. +is a simple tabbed container for applications which support XEmbed. Tabbed +will then run the provides command with the xid of tabbed as appended +argument. (See EXAMPLES.) The automatic spawning of the command can be +disabled by provoding the -s parameter. .SH OPTIONS .TP .B \-d detaches tabbed from the terminal and prints its XID to stdout. .TP +.B \-h +will print the usage of tabbed. +.TP +.B \-s +will disable automatic spawning of the command. +.TP .B \-v prints version information to stderr, then exits. .SH USAGE diff --git a/tabbed.c b/tabbed.c @@ -141,7 +141,7 @@ static void (*handler[LASTEvent]) (const XEvent *) = { }; static int bh, wx, wy, ww, wh; static unsigned int numlockmask = 0; -static Bool running = True, nextfocus; +static Bool running = True, nextfocus, doinitspawn = True; static Display *dpy; static DC dc; static Atom wmatom[WMLast], xembedatom; @@ -687,7 +687,8 @@ run(void) { /* main event loop */ XSync(dpy, False); drawbar(); - spawn(NULL); + if(doinitspawn == True) + spawn(NULL); while(running) { XNextEvent(dpy, &ev); if(handler[ev.type]) @@ -862,6 +863,12 @@ xerror(Display *dpy, XErrorEvent *ee) { return xerrorxlib(dpy, ee); /* may call exit */ } +void +usage(char *argv0) +{ + die("usage: %s [-dhsv] command...\n", argv0); +} + int main(int argc, char *argv[]) { int i, detach = 0; @@ -871,11 +878,15 @@ main(int argc, char *argv[]) { die("tabbed-"VERSION", © 2009-2011 tabbed engineers, see LICENSE for details\n"); else if(!strcmp("-d", argv[i])) detach = 1; + else if(!strcmp("-s", argv[i])) + doinitspawn = False; + else if(!strcmp("-h", argv[i])) + usage(argv[0]); else setcmd(argc-i, argv+i); } if(!cmd) - die("usage: tabbed [-d] [-v] command...\n"); + usage(argv[0]); if(!setlocale(LC_CTYPE, "") || !XSupportsLocale()) fprintf(stderr, "tabbed: no locale support\n"); if(!(dpy = XOpenDisplay(NULL)))