We had a similar problem on our setup (Ubuntu 10.04 with standard Gnome 2 desktop). We fixed it by removing the content of the affected user's gconf: /desktop/gnome/peripherals/keyboard/kbd. You can do this by either using gconf-editor or deleting .gconf/desktop/gnome/peripherals/keyboard/kbd. After that, everything works fine.

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.

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 3.99.2.1. 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,