xpra icon
Bug tracker and wiki

Opened 8 months ago

Last modified 5 weeks ago

#2047 new defect

Keyboard input relates to server language, not clients

Reported by: stdedos Owned by: stdedos
Priority: minor Milestone: 3.0
Component: keyboard Version: 2.4.x
Keywords: Cc:

Description

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

Change History (6)

comment:1 Changed 8 months ago by Antoine Martin

Owner: changed from Antoine Martin to stdedos

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

comment:2 in reply to:  1 Changed 8 months ago by 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?

comment:3 Changed 8 months ago by 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.

comment:4 Changed 7 months ago by 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://[email protected]/0', '--opengl=no', '--desktop-scaling=0.75', '--start-on-last-client-exit=gnome-screen
saver-command -l', '--keyboard-raw=yes')
keyboard.raw=True
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:

  • en-client --> x-server: outputs 'x' language
  • y-client --> x-server: undetermined output

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

comment:5 Changed 4 months ago by Antoine Martin

Milestone: 2.53.0

Re-scheduling.

comment:6 Changed 5 weeks ago by 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.

Note: See TracTickets for help on using tickets.