Introduction
Introduction Statistics Contact Development Disclaimer Help
Allowing a different position for the window id. Thanks David Galos! - tabbed -…
git clone git://git.suckless.org/tabbed
Log
Files
Refs
README
LICENSE
---
commit 380c783155ea9c8af5c3c7e65bfb3b8c12c5e6ff
parent 3f0067b1c775a7f0ade805e10546272f8ce01dd3
Author: Christoph Lohmann <[email protected]>
Date: Thu, 8 Nov 2012 21:48:51 +0100
Allowing a different position for the window id. Thanks David Galos!
Diffstat:
M tabbed.1 | 23 +++++++++++++++++++++++
M tabbed.c | 17 ++++++++++-------
2 files changed, 33 insertions(+), 7 deletions(-)
---
diff --git a/tabbed.1 b/tabbed.1
@@ -9,6 +9,8 @@ tabbed \- generic tabbed interface
.RB [ \-v ]
.RB [ \-n
.IR name ]
+.RB [ \-r
+.IR narg ]
.IR [ command ... ]
.SH DESCRIPTION
.B tabbed
@@ -29,6 +31,13 @@ will print the usage of tabbed.
will set the WM_CLASS attribute to
.I name.
.TP
+.BI \-r " narg"
+will replace the
+.I narg
+th argument in
+.I command
+with the window id, rather than appending it to the end.
+.TP
.B \-s
will disable automatic spawning of the command.
.TP
@@ -61,4 +70,18 @@ $ tabbed urxvt -embed
$ tabbed xterm -into
.TP
$ $(tabbed -d >/tmp/tabbed.xid); urxvt -embed $(</tmp/tabbed.xid);
+.TP
+$ tabbed -r 2 st -w '' -e tmux
+.SH CUSTOMIZATION
+.B tabbed
+can be customized by creating a custom config.h and (re)compiling the source
+code. This keeps it fast, secure and simple.
+.SH AUTHORS
+See the LICENSE file for the authors.
+.SH LICENSE
+See the LICENSE file for the terms of redistribution.
+.SH SEE ALSO
+.BR st (1)
+.SH BUGS
+Please report them.
diff --git a/tabbed.c b/tabbed.c
@@ -118,7 +118,7 @@ static void rotate(const Arg *arg);
static void run(void);
static void sendxembed(Client *c, long msg, long detail, long d1, long d2);
static void setup(void);
-static void setcmd(int argc, char *argv[]);
+static void setcmd(int argc, char *argv[], int);
static void sigchld(int unused);
static void spawn(const Arg *arg);
static int textnw(const char *text, unsigned int len);
@@ -766,14 +766,14 @@ sendxembed(Client *c, long msg, long detail, long d1, lon…
}
void
-setcmd(int argc, char *argv[]) {
+setcmd(int argc, char *argv[], int replace) {
int i;
cmd = emallocz((argc+2) * sizeof(*cmd));
for(i = 0; i < argc; i++)
cmd[i] = argv[i];
- cmd[argc] = winid;
- cmd[argc+1] = NULL;
+ cmd[(replace > 0)? replace : argc] = winid;
+ cmd[argc + !(replace > 0)] = NULL;
}
void
@@ -952,12 +952,12 @@ char *argv0;
void
usage(void) {
- die("usage: %s [-dhsv] [-n name] command...\n", argv0);
+ die("usage: %s [-dhsv] [-n name] [-r narg] command...\n", argv0);
}
int
main(int argc, char *argv[]) {
- int detach = 0;
+ int detach = 0, replace = 0;
ARGBEGIN {
case 'd':
@@ -966,6 +966,9 @@ main(int argc, char *argv[]) {
case 'n':
wmname = EARGF(usage());
break;
+ case 'r':
+ replace = atoi(EARGF(usage()));
+ break;
case 's':
doinitspawn = False;
break;
@@ -981,7 +984,7 @@ main(int argc, char *argv[]) {
if(argc < 1)
doinitspawn = False;
- setcmd(argc, argv);
+ setcmd(argc, argv, replace);
if(!setlocale(LC_CTYPE, "") || !XSupportsLocale())
fprintf(stderr, "tabbed: no locale support\n");
You are viewing proxied material from suckless.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.