Introduction
Introduction Statistics Contact Development Disclaimer Help
Adding the -n name parameter to set WM_CLASS. Thanks Gavin Wahl <gavinwahl@gmai…
git clone git://git.suckless.org/tabbed
Log
Files
Refs
README
LICENSE
---
commit ef13e0d92e2bf38610f7d3540ee6282f84495b88
parent 45409110a21294d44ab1b6cf09b719ef654e8e22
Author: Christoph Lohmann <[email protected]>
Date: Wed, 3 Oct 2012 07:56:53 +0200
Adding the -n name parameter to set WM_CLASS. Thanks Gavin Wahl
<[email protected]>!
Diffstat:
M tabbed.1 | 6 ++++++
M tabbed.c | 34 +++++++++++++++++++++++------…
2 files changed, 31 insertions(+), 9 deletions(-)
---
diff --git a/tabbed.1 b/tabbed.1
@@ -7,6 +7,8 @@ tabbed \- generic tabbed interface
.RB [ \-h ]
.RB [ \-s ]
.RB [ \-v ]
+.RB [ \-n
+.IR name ]
.IR [ command ... ]
.SH DESCRIPTION
.B tabbed
@@ -23,6 +25,10 @@ detaches tabbed from the terminal and prints its XID to stdo…
.B \-h
will print the usage of tabbed.
.TP
+.BI \-n " name"
+will set the WM_CLASS attribute to
+.I name.
+.TP
.B \-s
will disable automatic spawning of the command.
.TP
diff --git a/tabbed.c b/tabbed.c
@@ -153,6 +153,7 @@ static Client *clients = NULL, *sel = NULL, *lastsel = NULL;
static int (*xerrorxlib)(Display *, XErrorEvent *);
static char winid[64];
static char **cmd = NULL;
+static char *wmname = "tabbed";
char *argv0;
/* configuration, allows nested code to access above variables */
@@ -732,20 +733,24 @@ void
setup(void) {
/* clean up any zombies immediately */
sigchld(0);
+
/* init screen */
screen = DefaultScreen(dpy);
root = RootWindow(dpy, screen);
initfont(font);
bh = dc.h = dc.font.height + 2;
+
/* init atoms */
wmatom[WMProtocols] = XInternAtom(dpy, "WM_PROTOCOLS", False);
wmatom[WMDelete] = XInternAtom(dpy, "WM_DELETE_WINDOW", False);
xembedatom = XInternAtom(dpy, "_XEMBED", False);
+
/* init appearance */
wx = 0;
wy = 0;
ww = 800;
wh = 600;
+
dc.norm[ColBG] = getcolor(normbgcolor);
dc.norm[ColFG] = getcolor(normfgcolor);
dc.sel[ColBG] = getcolor(selbgcolor);
@@ -761,11 +766,14 @@ setup(void) {
ButtonPressMask|ExposureMask|KeyPressMask|
StructureNotifyMask|SubstructureRedirectMask);
xerrorxlib = XSetErrorHandler(xerror);
+
XClassHint class_hint;
- class_hint.res_name = "tabbed";
- class_hint.res_class = "Tabbed";
+ class_hint.res_name = wmname;
+ class_hint.res_class = "tabbed";
XSetClassHint(dpy, win, &class_hint);
+
XSetWMProtocols(dpy, win, &wmatom[WMDelete], 1);
+
snprintf(winid, sizeof winid, "%lu", win);
nextfocus = foreground;
focus(clients);
@@ -878,7 +886,7 @@ char *argv0;
void
usage(void)
{
- die("usage: %s [-dhsv] command...\n", argv0);
+ die("usage: %s [-dhsv] [-n name] command...\n", argv0);
}
int
@@ -886,22 +894,27 @@ main(int argc, char *argv[]) {
int detach = 0;
ARGBEGIN {
+ case 'd':
+ detach = 1;
+ break;
+ case 'n':
+ wmname = EARGF(usage());
+ break;
+ case 's':
+ doinitspawn = False;
+ break;
case 'v':
die("tabbed-"VERSION", © 2009-2012"
" tabbed engineers, see LICENSE"
" for details.\n");
- case 's':
- doinitspawn = False;
- break;
+ default:
case 'h':
usage();
- case 'd':
- detach = 1;
- break;
} ARGEND;
if(argc < 1)
doinitspawn = False;
+
setcmd(argc, argv);
if(!setlocale(LC_CTYPE, "") || !XSupportsLocale())
@@ -911,6 +924,7 @@ main(int argc, char *argv[]) {
setup();
printf("0x%lx\n", win);
fflush(NULL);
+
if(detach) {
if(fork() == 0)
fclose(stdout);
@@ -920,9 +934,11 @@ main(int argc, char *argv[]) {
return EXIT_SUCCESS;
}
}
+
run();
cleanup();
XCloseDisplay(dpy);
+
return EXIT_SUCCESS;
}
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.