|
View:
New views
1 Messages
—
Rating Filter:
Alert me
|
|
|
Compiz dimming windows workaroundSo trying to use NX rootless results in Compiz graying out windows by
default as compiz believes them to be unresponsive. So far the very few complaints I've seen were met with 'just disable the feature'. Well, I did a little digging and have a workaround patch to nxagent to avoid the condition occurring. Technically speaking, though the most annoying manifestation of the limitation, it can manifest under the likes of metacity or any window manager that checks responsiveness of a window after the 'close' button is pressed. The problem is that when an application advertises _NET_WM_PING and a remote window manager actually tries to use the feature, it won't work. The proper fix is probably harder than I know how to do (have X events directed to root window in rootless nxagent be sent to any attached root windows instead of dropping it regardless of connected remote systems). However, the path I took was simply to have rootless NX mask the _NET_WM_PING property. This way, the responsiveness check will never be attempted. It will prevent Compiz and friends from ever detecting a hung window, but in this case that is preferable to *always* thinking the windows are hung. I have attached the patch. I know it is to nx core, but I was unsure of how to submit patches to them, so I'm posting it here in case someone like me needs it or someone knows how to call this to the attention of Nomachine. On a related note, I would look into why remote NX sessions can't get into my notification area/aka tray, but I may be distracted, so if anyone knows how that works and what aspects of NX inhibit that, would love to hear. [nxagent-ping.patch] --- ./programs/Xserver/hw/nxagent/Rootless.c.orig 2009-11-09 10:20:57.022468700 -0500 +++ ./programs/Xserver/hw/nxagent/Rootless.c 2009-11-09 10:24:01.014907601 -0500 @@ -633,7 +633,13 @@ for (i = 0; i < nUnits; i++) { - atoms[i] = nxagentLocalToRemoteAtom(input[i]); + if (strcmp("_NET_WM_PING",NameForAtom(input[i])) == 0) { + atoms[i] = None; /* nxagent rootless corrupts function of _NET_WM_PING + protocol. Mask the feature to prevent local + window manager misbehavior */ + } else { + atoms[i] = nxagentLocalToRemoteAtom(input[i]); + } if (atoms[i] == None) { ________________________________________________________________ Were you helped on this list with your FreeNX problem? Then please write up the solution in the FreeNX Wiki/FAQ: http://openfacts2.berlios.de/wikien/index.php/BerliosProject:FreeNX_-_FAQ Don't forget to check the NX Knowledge Base: http://www.nomachine.com/kb/ ________________________________________________________________ FreeNX-kNX mailing list --- FreeNX-kNX@... https://mail.kde.org/mailman/listinfo/freenx-knx ________________________________________________________________ |
| Free embeddable forum powered by Nabble | Forum Help |