xpra icon
Bug tracker and wiki

Opened 7 years ago

Closed 7 years ago

Last modified 7 years ago

#180 closed defect (invalid)

some keys are not forwarded

Reported by: onlyjob Owned by: Antoine Martin
Priority: minor Milestone: 0.5
Component: core Version: trunk
Keywords: Cc:

Description

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.

Change History (5)

comment:1 Changed 7 years ago by Antoine Martin

Status: newaccepted

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)

comment:2 Changed 7 years ago by 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.

comment:3 Changed 7 years ago by Antoine Martin

Resolution: invalid
Status: acceptedclosed

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

comment:4 in reply to:  3 ; Changed 7 years ago by 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.

comment:5 in reply to:  4 Changed 7 years ago by 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.

Note: See TracTickets for help on using tickets.