Subject: Bug#674: Fwd: [X2Go-Dev] Bug#674: Acknowledgement (keycode -> keycode translation harmful (makes configuration complex))

From: Ulrich Sibiller <[email-masked]>
Date: Tue, 16 Dec 2014 10:40:06 +0100

On Sat, Dec 13, 2014 at 1:45 AM, Robert Siemer <[email-masked]> wrote:

> If the translation is on, you get a skewed setup.
>
> Note that the x2go (with the setting of “do nothing”) does a non-perfect
> copy with the same effect: if the translation is effective, the keyboard is
> skewed and you are force to load at least “something” to fix XKB. If the
> translation is off, you “only” need to load XKB configuration if that
> non-perfect copy annoys you...

> Thanks for the pointer! I had a look at it. As I suspected: the translation
> is “bad”. Sometimes two different keycodes are translated to the same
> keycode. How are you supposed to tell them apart on the remote side? You
> can’t.
>
>> It seems some kind of translation from evdev to pc105 is done.
>
> The naming is a little funny: the keycodes generated by the kernel before
> evdev were not called like that, were they?

I don't think so.

>> Do we need to disable setting
>> up the translation within the nx code to make that work?
>
> That would be great as a first step.

I was wondering why this translations had been introduced. It emerged
between nxagent 3.2.0-10 and 3.3.0-9. The changelog between these
releases contains (among others) these changes:

nxagent-3.3.0-9

- Changed Keyboard initialization and reset. This change should fix
  TR11F02129, TR11F02131, TR11F02132.

nxagent-3.3.0-4

- Fix the XKB map load in the case of 64 bit server.

nxagent-3.3.0-3

- Fixed TR10F02119. If the remote X display is using evdev keyboard
  then copy maps from remote.

nxagent-3.2.0-12

- Fixed TR08E01814. Added shadow keymap initialization in order to
  enable nxcompshad to translate keycodes across different layouts.

So it MIGHT have been introduced mainly for shadow sessions. The
TR10F02119 refers to Ubuntu 8.10, which - according to some other
posts I found - is the version that introduced evdev. So the fix that
solved evdev problems is causing problems when evdev is enabled.

I also looked at the source and found that clearing the property seems
to be the only way to disable the translation. (apart from disabling
XKB completely).

Uli