xpra icon
Bug tracker and wiki

Opened 2 years ago

Closed 15 months ago

#2047 closed defect (needinfo)

Keyboard input relates to server language, not clients

Reported by: stdedos Owned by: stdedos
Priority: minor Milestone: 4.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 (10)

comment:1 Changed 2 years 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 2 years 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 2 years 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 2 years 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://sntentos@172.16.57.121/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 21 months ago by Antoine Martin

Milestone: 2.53.0

Re-scheduling.

comment:6 Changed 18 months 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.

comment:7 Changed 17 months ago by Antoine Martin

Bump.

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

Last edited 17 months ago by stdedos (previous) (diff)

comment:9 Changed 17 months ago by 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.

comment:10 Changed 15 months ago by Antoine Martin

Milestone: 3.04.0
Resolution: needinfo
Status: newclosed
Note: See TracTickets for help on using tickets.