Xpra: Ticket #2047: Keyboard input relates to server language, not clients

While debugging #2030, I noticed the following:

Both server and client have en-us, el-gr keyboard layouts.

If client is in en-us and I write, output depends on the server language (either en-us or el-gr) If client is in el-gr and I write, the output is something totally weird.

If debug from #2030 is not enough, I can generate a new one

Sat, 01 Dec 2018 09:25:51 GMT - Antoine Martin: owner changed

Is this a shadow server? If so, then yes, we don't change the server configuration in shadow mode.

Sat, 01 Dec 2018 09:44:30 GMT - stdedos:

Replying to Antoine Martin:

Is this a shadow server? If so, then yes, we don't change the server configuration in shadow mode.

I am not sure what this means. Why is it necessary to "change the configuration mode"? If the shadow client has understood the sequence, can it not just "replay it" on the shadow server?

Does the shadow server need to "re-evaluate" it?

e.g.: if client is in el-gr, one of the keyboard keys acts as "left arrow" on the server (regardless of the keyboard layout on the server)

It sounds like this is what --keyboard-raw=yes feature changes?

Sat, 01 Dec 2018 09:46:48 GMT - Antoine Martin:

All servers re-evaluate key events to map them to the server keyboard configuration, only keyboard-raw=yes completely bypasses this. This can only work if both the client and server have the exact same configuration, which is why it is not enabled by default.

Mon, 17 Dec 2018 09:43:29 GMT - stdedos:

I forgot (once again) to mention that server is Ubuntu Xenial, but client is Win10.

It seems that the server is configured

client.argv=('C:\\Program Files\\Xpra\\xpra_cmd', 'shadow', 'ssh://sntentos@', '--opengl=no', '--desktop-scaling=0.75', '--start-on-last-client-exit=gnome-screen
saver-command -l', '--keyboard-raw=yes')
server.argv=('/usr/bin/xpra', 'shadow', ':0', '--desktop-scaling=0.75', '--keyboard-raw=yes', '--exit-with-client=yes', '--opengl=no', '--env=XPRA_PROXY_START_UUID=87bba28b8cc3497da589df7c8ea5c9ec', '--daemon=yes', '--systemd-run=no')

However, I do have the same response:

Further reading the manual, I assume --keyboard-raw=yes is a no-op for this server/client combination?

Thu, 14 Mar 2019 12:58:49 GMT - Antoine Martin: milestone changed


Thu, 13 Jun 2019 11:15:53 GMT - Antoine Martin:

keyboard-raw is not meant to work if the client and server are different platforms.

If you find that keys are not mapped correctly, please follow the bug reporting section from wiki/Keyboard. In particular, having xpra info and the client + server -d keyboard output of a misbehaving key should help.

Mon, 22 Jul 2019 16:03:10 GMT - Antoine Martin:


Mon, 22 Jul 2019 16:15:07 GMT - stdedos:

In this case, it's not about a specific key.

It is that a specific combination (client is in el-gr), then, regardless of the server language (either en-us or el-gr), the output is something totally weird.

I thought that keyboard=raw would "simply pass" whatever character was written, and not simulate "somehow" the scancode of the key pressed on the client's keyboard.

Mon, 22 Jul 2019 16:16:36 GMT - Antoine Martin:

In this case, it's not about a specific key.

OK, then record the debug for just those two (or is it 3?) keys please.

Wed, 04 Sep 2019 03:45:19 GMT - Antoine Martin: status, milestone changed; resolution set

Sat, 23 Jan 2021 05:40:44 GMT - migration script:

this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/2047