Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Keyboard input relates to server language, not clients #2047

Closed
totaam opened this issue Nov 19, 2018 · 12 comments
Closed

Keyboard input relates to server language, not clients #2047

totaam opened this issue Nov 19, 2018 · 12 comments
Labels

Comments

@totaam
Copy link
Collaborator

totaam commented Nov 19, 2018

Issue migrated from trac ticket # 2047

component: keyboard | priority: minor | resolution: needinfo

2018-11-19 07:39:50: stdedos created the issue


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

@totaam
Copy link
Collaborator Author

totaam commented Dec 1, 2018

2018-12-01 09:25:52: antoine changed owner from antoine to stdedos

@totaam
Copy link
Collaborator Author

totaam commented Dec 1, 2018

2018-12-01 09:25:52: antoine commented


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

@totaam
Copy link
Collaborator Author

totaam commented Dec 1, 2018

2018-12-01 09:44:30: stdedos commented


Replying to [comment:1 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?

@totaam
Copy link
Collaborator Author

totaam commented Dec 1, 2018

2018-12-01 09:46:49: antoine commented


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.

@totaam
Copy link
Collaborator Author

totaam commented Dec 17, 2018

2018-12-17 09:43:29: stdedos commented


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?

@totaam
Copy link
Collaborator Author

totaam commented Mar 14, 2019

2019-03-14 12:58:49: antoine commented


Re-scheduling.

@totaam
Copy link
Collaborator Author

totaam commented Jun 13, 2019

2019-06-13 12:15:53: antoine commented


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 Keyboard.
In particular, having xpra info and the client + server -d keyboard output of a misbehaving key should help.

@totaam
Copy link
Collaborator Author

totaam commented Jul 22, 2019

2019-07-22 17:03:10: antoine commented


Bump.

@totaam
Copy link
Collaborator Author

totaam commented Jul 22, 2019

2019-07-22 17:15:08: stdedos commented


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.

@totaam
Copy link
Collaborator Author

totaam commented Jul 22, 2019

2019-07-22 17:16:36: antoine commented


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.

@totaam
Copy link
Collaborator Author

totaam commented Sep 4, 2019

2019-09-04 04:45:19: antoine changed status from new to closed

@totaam
Copy link
Collaborator Author

totaam commented Sep 4, 2019

2019-09-04 04:45:19: antoine set resolution to needinfo

@totaam totaam closed this as completed Sep 4, 2019
@totaam totaam added the v2.4.x label Jan 22, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant