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.
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)
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.
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
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.
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.
this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/180