In order to use tabbed in my Xmonad scratchpad, I needed to set the WM_CLASS
property. I added the -n option in this patch to allow this.
Use like: tabbed -n scratchpad xterm -into

# HG changeset patch
# User Gavin Wahl <gavinw...@gmail.com>
# Date 1349197533 21600
# Node ID 67bafeab0159d11514a4e99427dca3630f613a12
# Parent  2e9d8a5c62ccf0526326a0a9e101b0b476050da9
Add -n NAME option

Sets the X11 WM_CLASS attribute of the tabbed window

diff -r 2e9d8a5c62cc -r 67bafeab0159 tabbed.1
--- a/tabbed.1  Mon Aug 20 09:08:09 2012 +0200
+++ b/tabbed.1  Tue Oct 02 11:05:33 2012 -0600
@@ -7,6 +7,8 @@
 .RB [ \-h ]
 .RB [ \-s ]
 .RB [ \-v ]
+.RB [ \-n
+.IR name ]
 .IR [ command ... ]
 .SH DESCRIPTION
 .B tabbed
@@ -28,6 +30,9 @@
 .TP
 .B \-v
 prints version information to stderr, then exits.
+.TP
+.B \-n name
+sets the WM_CLASS attribute to name.
 .SH USAGE
 .TP
 .B Ctrl\-Shift\-Return
diff -r 2e9d8a5c62cc -r 67bafeab0159 tabbed.c
--- a/tabbed.c  Mon Aug 20 09:08:09 2012 +0200
+++ b/tabbed.c  Tue Oct 02 11:05:33 2012 -0600
@@ -153,6 +153,7 @@
 static int (*xerrorxlib)(Display *, XErrorEvent *);
 static char winid[64];
 static char **cmd = NULL;
+static char *wm_class = "tabbed";

 char *argv0;
 /* configuration, allows nested code to access above variables */
@@ -762,7 +763,7 @@
                        StructureNotifyMask|SubstructureRedirectMask);
        xerrorxlib = XSetErrorHandler(xerror);
        XClassHint class_hint;
-       class_hint.res_name = "tabbed";
+       class_hint.res_name = wm_class;
        class_hint.res_class = "Tabbed";
        XSetClassHint(dpy, win, &class_hint);
        XSetWMProtocols(dpy, win, &wmatom[WMDelete], 1);
@@ -878,7 +879,7 @@
 void
 usage(void)
 {
-       die("usage: %s [-dhsv] command...\n", argv0);
+       die("usage: %s [-dhsv] [-n name] command...\n", argv0);
 }

 int
@@ -898,6 +899,9 @@
        case 'd':
                detach = 1;
                break;
+       case 'n':
+                wm_class = EARGF(usage());
+               break;
        } ARGEND;

        if(argc < 1)

Reply via email to