Re: [dwm] dwm and Sun's XToolkit

From: Karl. <kmw1_AT_free.net.nz>
Date: Thu, 14 Dec 2006 12:28:35 +1300

On Wed, Dec 13, 2006 at 12:19:19PM +0100, Anselm R. Garbe wrote:
> One remark I forget to mention. If no WM runs, XWM don't tries
> to getInsets, because that won't make any sense obviously...

I was wondering if running the java app inside a nested X server would
work as a hack to make it behave usably? I presume that the app would
see no window manager and therefore not activate the java WM-specific
hacks.

I have installed Xephyr (called xserver-xephyr under Debian) to try this
out, but I've not had time to seriously play with it yet. The oddity I
have seen, though, is that dwm rules seem unable to match the xephyr
window when it appears - there seems to be no class:instance:title info
to match against (I patched tag.c to print this info to stderr (as shown
below) - it works fine for all my other clients so far, but prints
nothing for xephyr).

What am I missing? Is this likely to help with the java apps anyway?

Karl.

=============================
void
settags(Client *c, Client *trans) {
        char prop[512];
        unsigned int i, j;
        regmatch_t tmp;
        Bool matched = trans != NULL;
        XClassHint ch;

        if(matched) {
                for(i = 0; i < ntags; i++)
                        c->tags[i] = trans->tags[i];
        }
        else if(XGetClassHint(dpy, c->win, &ch)) {
                snprintf(prop, sizeof prop, "%s:%s:%s",
                                ch.res_class ? ch.res_class : "",
                                ch.res_name ? ch.res_name : "", c->name);
                fprintf(stderr, "%s\n", prop); // KMW: print new-client info to stderr
                for(i = 0; i < len; i++)
                        if(rreg[i].clregex && !regexec(rreg[i].clregex, prop, 1, &tmp, 0)) {
                                c->isfloat = rule[i].isfloat;
                                for(j = 0; rreg[i].tregex && j < ntags; j++) {
                                        if(!regexec(rreg[i].tregex, tags[j], 1, &tmp, 0)) {
                                                matched = True;
                                                c->tags[j] = True;
                                        }
                                }
                        }
                if(ch.res_class)
                        XFree(ch.res_class);
                if(ch.res_name)
                        XFree(ch.res_name);
        }
        if(!matched)
                for(i = 0; i < ntags; i++)
                        c->tags[i] = seltag[i];
}
Received on Thu Dec 14 2006 - 00:28:44 UTC

This archive was generated by hypermail 2.2.0 : Sun Jul 13 2008 - 14:33:49 UTC