Xpra: Ticket #180: some keys are not forwarded

Hi Antoine,

Just reporting a minor issue in hope that you could advise:

I've noticed two keys on my keyboard that do not work through xpra in remote applications: '/' and '*' but only those on right hand side next to "Num Lock". I use the very same layout on local and remote machine:

rules: evdev model: pc101 layout: us

Any ideas?

Thank you.



Fri, 24 Aug 2012 07:00:57 GMT - Antoine Martin: status changed

There are a number of similar keyboard bugs: #91, #117, #108, #109, #86

The key one is #149

Fixing all those is not going to be easy.. Feel free to add more information here (as per the other bugs: setxkbmap and xmodmap output, etc)


Sat, 25 Aug 2012 01:25:58 GMT - onlyjob:

Sorry for incomplete information.

I run xpra with --debug=all and found something interesting in log on server side:

2012-08-25 08:34:31,426 signal_safe_exec(['xkbcomp', '-', ':11'],xkb_keymap {
<------>xkb_keycodes  { include "evdev+aliases(qwerty)">};
<------>xkb_types     { include "complete"<---->};
<------>xkb_compat    { include "complete+ledscroll(group_lock)"<------>};
<------>xkb_symbols   { include "pc+us+ru:2+inet(evdev)+group(alt_shift_toggle)"<------>};
<------>xkb_geometry  { include "pc(pc101)"<--->};
};
) stdout=''
2012-08-25 08:34:31,426 signal_safe_exec(['xkbcomp', '-', ':11'],xkb_keymap {
<------>xkb_keycodes  { include "evdev+aliases(qwerty)">};
<------>xkb_types     { include "complete"<---->};
<------>xkb_compat    { include "complete+ledscroll(group_lock)"<------>};
<------>xkb_symbols   { include "pc+us+ru:2+inet(evdev)+group(alt_shift_toggle)"<------>};
<------>xkb_geometry  { include "pc(pc101)"<--->};
};
) stderr='Warning:          Multiple default components in keypad
                  Using x11, ignoring pointerkeys
Warning:          Key <OUTP> not found in evdev+aliases(qwerty) keycodes
                  Symbols ignored
Warning:          Key <KITG> not found in evdev+aliases(qwerty) keycodes
                  Symbols ignored
Warning:          Key <KIDN> not found in evdev+aliases(qwerty) keycodes
                  Symbols ignored
Warning:          Key <KIUP> not found in evdev+aliases(qwerty) keycodes
                  Symbols ignored
Warning:          Key <RO> not found in evdev+aliases(qwerty) keycodes
                  Symbols ignored
Warning:          Key <I192> not found in evdev+aliases(qwerty) keycodes
                  Symbols ignored
Warning:          Key <I193> not found in evdev+aliases(qwerty) keycodes
                  Symbols ignored
Warning:          Key <I194> not found in evdev+aliases(qwerty) keycodes
                  Symbols ignored
Warning:          Key <I195> not found in evdev+aliases(qwerty) keycodes
                  Symbols ignored
Warning:          Key <I196> not found in evdev+aliases(qwerty) keycodes
                  Symbols ignored
Warning:          Key <I255> not found in evdev+aliases(qwerty) keycodes
                  Symbols ignored
Warning:          No symbols defined for <AB11> (keycode 97)
Warning:          No symbols defined for <JPCM> (keycode 103)
Warning:          No symbols defined for <I120> (keycode 120)
Warning:          No symbols defined for <AE13> (keycode 132)
Warning:          No symbols defined for <I149> (keycode 149)
Warning:          No symbols defined for <I154> (keycode 154)
Warning:          No symbols defined for <I161> (keycode 161)
Warning:          No symbols defined for <I168> (keycode 168)
Warning:          No symbols defined for <I178> (keycode 178)
Warning:          No symbols defined for <I183> (keycode 183)
Warning:          No symbols defined for <I184> (keycode 184)
Warning:          No symbols defined for <FK19> (keycode 197)
Warning:          No symbols defined for <FK20> (keycode 198)
Warning:          No symbols defined for <FK24> (keycode 202)
Warning:          No symbols defined for <I217> (keycode 217)
Warning:          No symbols defined for <I219> (keycode 219)
Warning:          No symbols defined for <I221> (keycode 221)
Warning:          No symbols defined for <I222> (keycode 222)
Warning:          No symbols defined for <I230> (keycode 230)
Warning:          No symbols defined for <I247> (keycode 247)
Warning:          No symbols defined for <I248> (keycode 248)
Warning:          No symbols defined for <I249> (keycode 249)
Warning:          No symbols defined for <I250> (keycode 250)
Warning:          No symbols defined for <I251> (keycode 251)
Warning:          No symbols defined for <I252> (keycode 252)
Warning:          No symbols defined for <I253> (keycode 253)

The following is from server log on KP_Divide:

2012-08-25 08:34:35,745 make_keymask_match(()) current mask: set([]), wanted: set([]), ignoring=106/['KP_Divide'], keys_pressed={}
2012-08-25 08:34:35,745 handle_key(1,True,KP_Divide,65455,106,())
2012-08-25 08:34:35,745 handle keycode pressing 106: key KP_Divide
2012-08-25 08:34:35,745 scheduling key repeat timer with delay 660 for KP_Divide / 106

Corresponding events from client log:

2012-08-25 08:34:35,669 handle_key_action(<gtk.gdk.Event at 0x33e2058: GDK_KEY_PRESS keyval=KP_Divide>,<ClientWindow object at 0x33ceb40 (xpra+client_window+ClientWindow at 0x32a4e10)>,True)
2012-08-25 08:34:35,669 key_action(<gtk.gdk.Event at 0x33e2058: GDK_KEY_PRESS keyval=KP_Divide>,<ClientWindow object at 0x33ceb40 (xpra+client_window+ClientWindow at 0x32a4e10)>,True) modifiers=[], name=KP_Divide, state=<flags 0 of type GdkModifierType>, keyval=65455, string=/, keycode=106
2012-08-25 08:34:35,669 scheduling key repeat for KP_Divide: delay=560, interval=5 (from 660 and 40)
2012-08-25 08:34:35,669 key repeat: starting timer for KP_Divide / 106 with delay 560 and interval 5
2012-08-25 08:34:35,740 handle_key_action(<gtk.gdk.Event at 0x33e20d0: GDK_KEY_RELEASE keyval=KP_Divide>,<ClientWindow object at 0x33ceb40 (xpra+client_window+ClientWindow at 0x32a4e10)>,False)
2012-08-25 08:34:35,741 key_action(<gtk.gdk.Event at 0x33e20d0: GDK_KEY_RELEASE keyval=KP_Divide>,<ClientWindow object at 0x33ceb40 (xpra+client_window+ClientWindow at 0x32a4e10)>,False) modifiers=[], name=KP_Divide, state=<flags 0 of type GdkModifierType>, keyval=65455, string=/, keycode=106
2012-08-25 08:34:35,742 key repeat: clearing timer for KP_Divide / 106
2012-08-25 08:34:35,861 handle_key_action(<gtk.gdk.Event at 0x33e20d0: GDK_KEY_PRESS keyval=KP_Divide>,<ClientWindow object at 0x33ceb40 (xpra+client_window+ClientWindow at 0x32a4e10)>,True)
2012-08-25 08:34:35,861 key_action(<gtk.gdk.Event at 0x33e20d0: GDK_KEY_PRESS keyval=KP_Divide>,<ClientWindow object at 0x33ceb40 (xpra+client_window+ClientWindow at 0x32a4e10)>,True) modifiers=[], name=KP_Divide, state=<flags 0 of type GdkModifierType>, keyval=65455, string=/, keycode=106
2012-08-25 08:34:35,862 scheduling key repeat for KP_Divide: delay=560, interval=5 (from 660 and 40)
2012-08-25 08:34:35,862 key repeat: starting timer for KP_Divide / 106 with delay 560 and interval 5
2012-08-25 08:34:35,948 handle_key_action(<gtk.gdk.Event at 0x33e2058: GDK_KEY_RELEASE keyval=KP_Divide>,<ClientWindow object at 0x33ceb40 (xpra+client_window+ClientWindow at 0x32a4e10)>,False)
2012-08-25 08:34:35,949 key_action(<gtk.gdk.Event at 0x33e2058: GDK_KEY_RELEASE keyval=KP_Divide>,<ClientWindow object at 0x33ceb40 (xpra+client_window+ClientWindow at 0x32a4e10)>,False) modifiers=[], name=KP_Divide, state=<flags 0 of type GdkModifierType>, keyval=65455, string=/, keycode=106
2012-08-25 08:34:35,949 key repeat: clearing timer for KP_Divide / 106

Similarly KP_Multiply, KP_Subtract and KP_Add were affected.

Somehow upgrading package "keyboard-configuration" 1.80 --> 1.82 fixed this problem on Debian.

I'm not sure about neither what was the root cause for this nor how did the solution worked.

(At least we have some information for the record).

Probably this ticket can be closed now.

Thanks.


Sat, 25 Aug 2012 04:00:40 GMT - Antoine Martin: status changed; resolution set

Sounds like you upgraded to a version of setxkbmap that supports -query?

Did you not see the big warning when you started the client before you upgraded keyboard-configuration?

the server will try to guess your keyboard mapping, which works reasonably well in most cases
however, upgrading 'setxkbmap' to a version that supports the '-query' parameter is preferred

Sat, 25 Aug 2012 04:56:35 GMT - onlyjob:

Replying to antoine:

Sounds like you upgraded to a version of setxkbmap that supports -query?

Could be but I reviewed keyboard-configuration changelog and didn't find anything relevant...

Did you not see the big warning when you started the client before you upgraded keyboard-configuration?

That's a tricky part: I already had keyboard-configuration-1.82 on client. When I started to troubleshoot I first run a local server which forwarded problematic keys successfully. This gave me suspicion that something must be slightly different between client and server and it wasn't long until I found the difference responsible.

the server will try to guess your keyboard mapping, which works reasonably well in most cases
however, upgrading 'setxkbmap' to a version that supports the '-query' parameter is preferred

Thanks for your comments.


Sat, 25 Aug 2012 07:54:29 GMT - onlyjob:

Replying to antoine:

Sounds like you upgraded to a version of setxkbmap that supports -query?

No, this is not the case: on Debian /usr/bin/setxkbmap provided by package 'x11-xkb-utils'. It didn't change. I don't know how 'keyboard-configuration' could be relevant but that was the only package I updated.


Sat, 23 Jan 2021 04:47:42 GMT - migration script:

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