Hi Benjamin,

I can confirm the same keyboard behaviour.

I found a solution for this issue by myself. Install kde desktop in the server and start kde session with a clean home folder for the user and the keyborad works! It only works with kde desktop.

If you have logged on before with a user in gnome desktop you have to rename user's home folder, login this wat in kde and then move files and folder your really need.

Hope it helps you.


2013/1/30 benjamin milde <bmilde@gmail.com>
Package: *
Version: various versions tried out, see below

* Buggy package name not known. I suspect a problem with nx-libraries.

I can supply further information for the mac os x keyboard bug in x2go. I think I had this problem already ~2 years ago, when I first tried out x2go. All pressed client keys produce wrong key events on the host. Its a real show-stopper since it makes x2go basically totally unusable for me and others.

See also this post on the x2go mailing list https://lists.berlios.de/pipermail/x2go-user/2012-November/001123.html
There, Michael had the same problem I observe with:

Server Side: Ubuntu 12.04 with x2goserver from the stable PPA
Client Side: Mac OS X 10.6.8 with x2goclient from the x2go website
Keyboard Layout: en_us everywhere, and in x2goclient I checked "Keep current keyboard Settings"

I'm using Mac OS X 10.8.2, XQuarz 2.7.4 and also x2goclient I also tried changing x2goserver from stable PPA to 4.1.0 from git. Also toggling "Keep current keyboard Settings" does not make a difference. Server is also a ubuntu machine, but could cross-check this with a Debian install (and see if the same error occurs there).

The problem is that keystate changes while it is transferred to the host:

MAC:   state 0x0, keycode 26 (keysym 0x31, 1), same_screen YES,
LINUX: state 0x10, keycode 26 (keysym 0x65, e), same_screen YES,

This makes the keyboard unusable, since every client keycode gives a wrong keysym on the host. The mask 0x10 is set for all key events sent to the host, every time.

Looking around in X's headers I found:

defined in <X.h>
/* Key masks. Used as modifiers to GrabButton and GrabKey, results of QueryPointer,
   state in various key-, mouse-, and button-related events. */
#define ShiftMask               (1<<0)
#define LockMask                (1<<1)
#define ControlMask             (1<<2)
#define Mod1Mask                (1<<3)
#define Mod2Mask                (1<<4)
#define Mod3Mask                (1<<5)
#define Mod4Mask                (1<<6)
#define Mod5Mask                (1<<7)

So keystate 0x10 means the keyevent has Mod2Mask set.

defined in <xorg/atKeynames.h> (but don't think it's a standard X11 header)
#define AltMask         Mod1Mask
#define NumLockMask     Mod2Mask
#define AltLangMask     Mod3Mask
#define KanaMask        Mod4Mask
#define ScrollLockMask  Mod5Mask

Which appears to be a NumLockMask. This makes sense since 'dfg' gives the numbers '124', i.e. indicating that I have some sort of Numpad overlay in the middle of the keyboard on the host.  

For what is worth, a found similar bug report with no machines remote desktop. http://apple.stackexchange.com/questions/31691/no-machine-remote-desktop-issue

 "For instance, the Delete key was now comma, all the letters were transposed, general chaos. "

I can also confirm that backspace is comma, so this seems to be the same NumLockMask problem. Every key is garbled, but not randomly.

The same problems apparently appears here in a bug report in XQuartz. They think its not their fault:


"From my experience using NX in Linux, NX is badly designed. It sends keycodes instead of KeySyms to the remote NX session.
 This causes the remote session to behave badly, unless you install the local keyboard map into the remote X session.
It is a problem with NX and not the X server. However, that should have no effect on the local keyboard mapping. "

If someone could point me in the right direction, I would be glad to help. 
And as I have no need for the Mod2Mask, as a temporary fix, I would be fine to ignore this mask on the server side and hard code xkey->state &= ~(1u << 4); somewhere.

Has someone an idea how to further investigate this issue? Is there someone who can report a working keyboard with Mac Os X as client?

X2Go-Dev mailing list