Hi Anselm,
On Tue, May 20, 2008 at 04:13:35PM +0200, Anselm R. Garbe wrote:
> please recheck attached version of setmwname as a binary with
> the JDK grey blob issue.
>
> Use
>
> ; ./setwmname LG3D
>
> and see if it works. If so, then consider this for getting rid
> of Xmonad patches as well.
For me it doesn't work. Perhaps my java version is to old? Detailed info:
* matlab r2007a
* java version "1.6.0_05"
* centos 5 (final)
'export AWT_TOOLKIT="MTOOLKIT"' does work.
Attached is a patch that makes setwmname print the _NET_WM_NAME when no
arguments are given, similar to hostname(1).
Regards,
--
Jeroen Schot
diff -ur setwmname-0.1.orig/setwmname.c setwmname-0.1/setwmname.c
--- setwmname-0.1.orig/setwmname.c 2008-05-21 12:44:43.678505000 +0200
+++ setwmname-0.1/setwmname.c 2008-05-21 12:36:25.560506000 +0200
@@ -19,16 +19,17 @@
int
main(int argc, char **argv) {
+ int status, format;
+ unsigned char *data = NULL;
+ unsigned long n, extra;
Display *dpy;
Window root, dummy;
- Atom netwmcheck, netwmname, utf8_string;
+ Atom netwmcheck, netwmname, utf8_string, real;
- if(argc == 2) {
- if(!strncmp(argv[1], "-v", 3))
+ if(argc > 2)
+ eprint("usage: setwmname [name] [-v]\n");
+ if(argc == 2 && !strncmp(argv[1], "-v", 3))
eprint("setwmname-"VERSION", © 2008 Anselm R Garbe\n", stdout);
- }
- else
- eprint("usage: setwmname <name> [-v]\n");
if(!(dpy = XOpenDisplay(0)))
eprint("setwmname: cannot open display\n");
@@ -36,8 +37,15 @@
netwmcheck = XInternAtom(dpy, "_NET_SUPPORTING_WM_CHECK", False);
netwmname = XInternAtom(dpy, "_NET_WM_NAME", False);
utf8_string = XInternAtom(dpy, "UTF8_STRING", False);
- XChangeProperty(dpy, root, netwmcheck, XA_WINDOW, 32, PropModeReplace, (unsigned char *)&root, 1);
- XChangeProperty(dpy, root, netwmname, utf8_string, 8, PropModeReplace, (unsigned char *)argv[1], strlen(argv[1]));
+ if(argc == 1) {
+ status = XGetWindowProperty(dpy, root, netwmname, 0L, 32L, False, utf8_string, &real, &format, &n, &extra, (unsigned char **) &data);
+ if(status == Success && data != NULL)
+ printf("%s\n", data);
+ XFree(data);
+ } else {
+ XChangeProperty(dpy, root, netwmcheck, XA_WINDOW, 32, PropModeReplace, (unsigned char *)&root, 1);
+ XChangeProperty(dpy, root, netwmname, utf8_string, 8, PropModeReplace, (unsigned char *)argv[1], strlen(argv[1]));
+ }
XSync(dpy, False);
XCloseDisplay(dpy);
return 0;