x2go arrow key is not working properly

Solution 1:

The problem was keyboard layout.

that was null , I changed it to English(US) , now it is working correctly.

Solution 2:

I would like to explain what happened:

On your local X11 your keyboard's keycodes are:

  • 111 for (up arrow key)
  • 104 for ENTER on keypad

But over x2go, the very same keys produce different keycodes!

  • 104 for (up arrow key)

I have no idea why the implementation of x2go does this (instead of forwarding the keycode as is!), but that it how it is. This does not happen with all keycodes/keys.

So when you instruct x2go to do nothing about the XKB setup, the assignments keycode -> keysym is effectively the same and keycode 104 has still the same result: keypad's ENTER.

The interesting thing is: there is a schema behind this mapping! The x2go side seems to use the keycodes written down in the "old" XKBROOT/keycodes/xfree86 file, while a "modern" Linux desktop has the keycodes comming from evdev who's keycodes is written down in the file XKBROOT/keycodes/evdev.

Result: you always have to load a new XKB configuration in x2go. Let the x2go client initiate that itself or load your own, but keep in mind to use the xfree86 rules (or directly the keycodes from xfree86 (same name)).