[winswitch] Xpra keyboard mapping: client: german Win 7, server german CentOS 7

Berg, Alexander alexander.berg at atos.net
Tue Oct 17 13:55:47 BST 2017


Hi @all,

a collegue of mine would like to use xpra on Win 7 to get X11 from CentOS 7.

Unfortunately the keyboard mapping doesn't work well for a german 
keyboard (CentOS 7 <-> CentOS 7 works well).
I've tried and can confirm his observation using different 2.x.x Clients 
on Win 7.
Switching the keyboard (in xpra-context-menu) from "auto" to "de" makes 
no difference.

Could you give me a hint if this is a bug or maybe a 
not-so-well-visible-client-setting we're missing?
(Example with log && xev follows below)*

Thanks!
Regards,
     Alex

Example:
The pipe symbol "|" is "AltGR"+"<" on a german keyboard.
*Non-remote* typing "|" looks like:
     KeyPress event, serial 30, synthetic NO, window 0x4400001,
         root 0x28e, subw 0x0, time 535304170, (389,-605), root:(889,416),
         state 0x10, keycode 108 (keysym 0xfe03, ISO_Level3_Shift), 
same_screen YES,
         XKeysymToKeycode returns keycode: 92
         XLookupString gives 0 bytes:
         XmbLookupString gives 0 bytes:
         XFilterEvent returns: False

     KeyPress event, serial 33, synthetic NO, window 0x4400001,
         root 0x28e, subw 0x0, time 535304218, (389,-605), root:(889,416),
         state 0x90, keycode 52 (keysym 0xbb, guillemotright), 
same_screen YES,
         XLookupString gives 2 bytes: (c2 bb) "»"
         XmbLookupString gives 2 bytes: (c2 bb) "»"
         XFilterEvent returns: False

     KeyRelease event, serial 33, synthetic NO, window 0x4400001,
         root 0x28e, subw 0x0, time 535304307, (389,-605), root:(889,416),
         state 0x90, keycode 52 (keysym 0xbb, guillemotright), 
same_screen YES,
         XLookupString gives 2 bytes: (c2 bb) "»"
         XFilterEvent returns: False

     KeyRelease event, serial 33, synthetic NO, window 0x4400001,
         root 0x28e, subw 0x0, time 535304530, (389,-605), root:(889,416),
         state 0x90, keycode 108 (keysym 0xfe03, ISO_Level3_Shift), 
same_screen YES,
         XKeysymToKeycode returns keycode: 92
         XLookupString gives 0 bytes:
         XFilterEvent returns: False
While xkbmap ist set to:
     xkb_keymap {
             xkb_keycodes  { include "evdev+aliases(qwertz)" };
             xkb_types     { include "complete"      };
             xkb_compat    { include "complete"      };
             xkb_symbols   { include "pc+de+inet(evdev)"     };
             xkb_geometry  { include "pc(pc105)"     };
     };
     rules:      evdev
     model:      pc105
     layout:     de


*Inside an xpra session*
     xpra_cmd.exe start ssh:%USER%@%CENTOS7-HOST% --start-child="xterm 
-ls" --exit-with-children --debug=keyboard
typing "|" (but getting "<") looks like:
     KeyPress event, serial 33, synthetic NO, window 0xa00001,
         root 0x25d, subw 0x0, time 536295354, (568,425), root:(697,581),
         state 0x10, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
         XLookupString gives 0 bytes:
         XmbLookupString gives 0 bytes:
         XFilterEvent returns: False

     KeyRelease event, serial 36, synthetic NO, window 0xa00001,
         root 0x25d, subw 0x0, time 536295384, (568,425), root:(697,581),
         state 0x6014, keycode 37 (keysym 0xffe3, Control_L), 
same_screen YES,
         XLookupString gives 0 bytes:
         XFilterEvent returns: False

     KeyPress event, serial 36, synthetic NO, window 0xa00001,
         root 0x25d, subw 0x0, time 536295384, (568,425), root:(697,581),
         state 0x6010, keycode 77 (keysym 0xff7f, Num_Lock), same_screen 
YES,
         XLookupString gives 0 bytes:
         XmbLookupString gives 0 bytes:
         XFilterEvent returns: False

     KeyRelease event, serial 36, synthetic NO, window 0xa00001,
         root 0x25d, subw 0x0, time 536295384, (568,425), root:(697,581),
         state 0x6010, keycode 77 (keysym 0xff7f, Num_Lock), same_screen 
YES,
         XLookupString gives 0 bytes:
         XFilterEvent returns: False

     KeyPress event, serial 36, synthetic NO, window 0xa00001,
         root 0x25d, subw 0x0, time 536295384, (568,425), root:(697,581),
         state 0x6000, keycode 113 (keysym 0xfe03, ISO_Level3_Shift), 
same_screen YES,
         XLookupString gives 0 bytes:
         XmbLookupString gives 0 bytes:
         XFilterEvent returns: False

     KeyPress event, serial 36, synthetic NO, window 0xa00001,
         root 0x25d, subw 0x0, time 536295547, (568,425), root:(697,581),
         state 0x80, keycode 77 (keysym 0xff7f, Num_Lock), same_screen YES,
         XLookupString gives 0 bytes:
         XmbLookupString gives 0 bytes:
         XFilterEvent returns: False

     KeyRelease event, serial 36, synthetic NO, window 0xa00001,
         root 0x25d, subw 0x0, time 536295547, (568,425), root:(697,581),
         state 0x90, keycode 77 (keysym 0xff7f, Num_Lock), same_screen YES,
         XLookupString gives 0 bytes:
         XFilterEvent returns: False

     KeyPress event, serial 36, synthetic NO, window 0xa00001,
         root 0x25d, subw 0x0, time 536295547, (568,425), root:(697,581),
         state 0x90, keycode 183 (keysym 0x3c, less), same_screen YES,
         XKeysymToKeycode returns keycode: 94
         XLookupString gives 1 bytes: (3c) "<"
         XmbLookupString gives 1 bytes: (3c) "<"
         XFilterEvent returns: False

     KeyRelease event, serial 36, synthetic NO, window 0xa00001,
         root 0x25d, subw 0x0, time 536295629, (568,425), root:(697,581),
         state 0x90, keycode 183 (keysym 0x3c, less), same_screen YES,
         XKeysymToKeycode returns keycode: 94
         XLookupString gives 1 bytes: (3c) "<"
         XFilterEvent returns: False

     KeyPress event, serial 36, synthetic NO, window 0xa00001,
         root 0x25d, subw 0x0, time 536295901, (568,425), root:(697,581),
         state 0x6090, keycode 77 (keysym 0xff7f, Num_Lock), same_screen 
YES,
         XLookupString gives 0 bytes:
         XmbLookupString gives 0 bytes:
         XFilterEvent returns: False

     KeyRelease event, serial 36, synthetic NO, window 0xa00001,
         root 0x25d, subw 0x0, time 536295901, (568,425), root:(697,581),
         state 0x6090, keycode 77 (keysym 0xff7f, Num_Lock), same_screen 
YES,
         XLookupString gives 0 bytes:
         XFilterEvent returns: False

     KeyRelease event, serial 36, synthetic NO, window 0xa00001,
         root 0x25d, subw 0x0, time 536297311, (568,425), root:(697,581),
         state 0x6080, keycode 113 (keysym 0xfe03, ISO_Level3_Shift), 
same_screen YES,
         XLookupString gives 0 bytes:
         XFilterEvent returns: False

     KeyPress event, serial 36, synthetic NO, window 0xa00001,
         root 0x25d, subw 0x0, time 536297312, (568,425), root:(697,581),
         state 0x6000, keycode 77 (keysym 0xff7f, Num_Lock), same_screen 
YES,
         XLookupString gives 0 bytes:
         XmbLookupString gives 0 bytes:
         XFilterEvent returns: False

     KeyRelease event, serial 36, synthetic NO, window 0xa00001,
         root 0x25d, subw 0x0, time 536297312, (568,425), root:(697,581),
         state 0x6010, keycode 77 (keysym 0xff7f, Num_Lock), same_screen 
YES,
         XLookupString gives 0 bytes:
         XFilterEvent returns: False
While xkbmap is set to:
     xkb_keymap {
     };
     rules:      base
     layout:    de
The Xpra_cmd.exe debug-output tells this:
     Warning: invalid option: 'min-port'
     Warning: invalid option: 'start-via-proxy'
     Warning: invalid option: 'mousewheel'
     2017-10-17 14:50:03,870 Xpra gtk2 client version 2.0-r15316 64-bit
     2017-10-17 14:50:03,870  running on Microsoft Windows 7
     Warning: invalid option: 'min-port'
     Warning: invalid option: 'start-via-proxy'
     Warning: invalid option: 'mousewheel'
     2017-10-17 14:50:04,338 GStreamer version 1.10.2 for Python 2.7.13 
64-bit
     2017-10-17 14:50:04,728 Warning: vendor 'VMware, Inc.' is greylisted,
     2017-10-17 14:50:04,728  you may want to turn off OpenGL if you 
encounter bugs
     2017-10-17 14:50:04,759 OpenGL_accelerate module loaded
     2017-10-17 14:50:04,806 OpenGL enabled with Gallium 0.4 on SVGA3D; 
build: RELEASE;  LLVM;
     2017-10-17 14:50:04,853  keyboard settings: layout=de
     2017-10-17 14:50:04,853  desktop size is 1920x1200 with 1 screen:
     2017-10-17 14:50:04,853   Default (406x254 mm - DPI: 120x120) 
workarea: 1920x1166
     2017-10-17 14:50:04,869     DISPLAY1 (677x423 mm - DPI: 72x72)
     2017-10-17 14:50:04,884 keyboard layouts: de,us,ru
     2017-10-17 14:50:08,488 Xpra X11 server version 2.1-r15692 64-bit
     2017-10-17 14:50:10,079  running on Linux CentOS 7.4.1708 Core
     2017-10-17 14:50:10,079 enabled remote logging
     Warning: invalid option: 'min-port'
     Warning: invalid option: 'start-via-proxy'
     Warning: invalid option: 'mousewheel'
     2017-10-17 14:50:10,859 sound output using container format ogg
     2017-10-17 14:50:11,356 sound output using audio codec opus
[...]
     2017-10-17 14:31:32,936 parse_key_event(<gtk.gdk.Event at 
000000001d5eb1c0: GDK_KEY_PRESS keyval=Control_L>, True)=<GTKKeyEvent 
object, contents: {'modifiers': ['control', 'mod2'], 'group': 0, 
'string': '', 'keyname': 'Control_L', 'pressed': True, 'keyval': 65507, 
'keycode': 17}>
     2017-10-17 14:31:32,946 handle_key_action(GLClientWindow(3 : 
gtk2.GLWindowBacking(3, (178, 178), None)), <GTKKeyEvent object, 
contents: {'modifiers': ['control', 'mod2'], 'group': 0, 'string': '', 
'keyname': 'Control_L', 'pressed': True, 'keyval': 65507, 'keycode': 
17}>) wid=3
     2017-10-17 14:31:32,953 process_key_event: Control_L pressed=True, 
with GetKeyState(VK_RMENU)=0
     2017-10-17 14:31:32,958 AltGr_modifiers(['mod2'], True) AltGr=mod5, 
add=['mod5'], clear=['mod1', 'mod2', 'control']
     2017-10-17 14:31:32,966 mask_to_names(<flags GDK_MOD2_MASK of type 
GdkModifierType>) GetKeyState(VK_NUMLOCK)=1, names=['mod5', 'mod2']
     2017-10-17 14:31:32,978 parse_key_event(<gtk.gdk.Event at 
000000001d5eb1c0: GDK_KEY_PRESS keyval=Alt_R>, True)=<GTKKeyEvent 
object, contents: {'modifiers': ['mod5', 'mod2'], 'group': 0, 'string': 
'', 'keyname': 'Alt_R', 'pressed': True, 'keyval': 65514, 'keycode': 165}>
     2017-10-17 14:31:32,994 handle_key_action(GLClientWindow(3 : 
gtk2.GLWindowBacking(3, (178, 178), None)), <GTKKeyEvent object, 
contents: {'modifiers': ['mod5', 'mod2'], 'group': 0, 'string': '', 
'keyname': 'Alt_R', 'pressed': True, 'keyval':65514, 'keycode': 165}>) wid=3
     2017-10-17 14:31:33,006 process_key_event: Alt_R pressed=True, with 
GetKeyState(VK_RMENU)=-127
     2017-10-17 14:31:33,014 AltGr_modifiers(['mod5', 'mod2'], True) 
AltGr=mod5, add=['mod5'], clear=['mod1', 'mod2', 'contro
     l']
     2017-10-17 14:31:33,025 send_delayed_key() delayed_event=(<bound 
method GTKKeyboardHelper.send_key_action of 
<xpra.client.gtk_base.gtk_keyboard_helper.GTKKeyboardHelper object at 
0x000000000a64b610>>, 3, <GTKKeyEvent object, contents: {'modifiers': 
['control', 'mod2'], 'group': 0, 'string': '', 'keyname': 'Control_L', 
'pressed': True, 'keyval': 65507, 'keycode': 17}>)
     2017-10-17 14:31:33,046 send_delayed_key() GetKeyState(VK_RMENU)=-127
     2017-10-17 14:31:33,053 send_key_action(3, <GTKKeyEvent object, 
contents: {'modifiers': ['control', 'mod2'], 'group': 0, 'string': '', 
'keyname': 'Control_L', 'pressed': True, 'keyval': 65507, 'keycode': 17}>)
     2017-10-17 14:31:33,066 send_key_action(3, <GTKKeyEvent object, 
contents: {'modifiers': ['mod5'], 'group': -1, 'string': '', 'keyname': 
'', 'pressed': True, 'keyval': -1, 'keycode': -1}>)
     2017-10-17 14:31:33,077 send_delayed_key() delayed_event=None
     2017-10-17 14:31:33,188 AltGr_modifiers(['mod2'], True) AltGr=mod5, 
add=['mod5'], clear=['mod1', 'mod2', 'control']
     2017-10-17 14:31:33,198 mask_to_names(<flags GDK_MOD2_MASK of type 
GdkModifierType>) GetKeyState(VK_NUMLOCK)=1, names=['mod5', 'mod2']
     2017-10-17 14:31:33,208 parse_key_event(<gtk.gdk.Event at 
000000001d5eba80: GDK_KEY_PRESS keyval=bar>, True)=<GTKKeyEvent object, 
contents: {'modifiers': ['mod5', 'mod2'], 'group': 0, 'string': '|', 
'keyname': 'bar', 'pressed': True, 'keyval': 124, 'keycode': 226}>
     2017-10-17 14:31:33,219 handle_key_action(GLClientWindow(3 : 
gtk2.GLWindowBacking(3, (178, 178), None)), <GTKKeyEvent object, 
contents: {'modifiers': ['mod5', 'mod2'], 'group': 0, 'string': '|', 
'keyname': 'bar', 'pressed': True, 'keyval':124, 'keycode': 226}>) wid=3
     2017-10-17 14:31:33,232 send_delayed_key() delayed_event=None
     2017-10-17 14:31:33,236 send_key_action(3, <GTKKeyEvent object, 
contents: {'modifiers': ['mod5', 'mod2'], 'group': 0, 'string': '|', 
'keyname': 'bar', 'pressed': True, 'keyval': 124, 'keycode': 226}>)
     2017-10-17 14:31:33,265 AltGr_modifiers(['mod2'], True) AltGr=mod5, 
add=['mod5'], clear=['mod1', 'mod2', 'control']
     2017-10-17 14:31:33,280 mask_to_names(<flags GDK_MOD2_MASK of type 
GdkModifierType>) GetKeyState(VK_NUMLOCK)=1, names=['mod5', 'mod2']
     2017-10-17 14:31:33,300 parse_key_event(<gtk.gdk.Event at 
000000001d5eb1c0: GDK_KEY_RELEASE keyval=bar>, False)=<GTKKeyEvent 
object, contents: {'modifiers': ['mod5', 'mod2'], 'group': 0, 'string': 
'|', 'keyname': 'bar', 'pressed': False, 'keyval': 124, 'keycode': 226}>
     2017-10-17 14:31:33,310 handle_key_action(GLClientWindow(3 : 
gtk2.GLWindowBacking(3, (178, 178), None)), <GTKKeyEvent object, 
contents: {'modifiers': ['mod5', 'mod2'], 'group': 0, 'string': '|', 
'keyname': 'bar', 'pressed': False, 'keyval': 124, 'keycode': 226}>) wid=3
     2017-10-17 14:31:33,311 send_delayed_key() delayed_event=None
     2017-10-17 14:31:33,317 send_key_action(3, <GTKKeyEvent object, 
contents: {'modifiers': ['mod5', 'mod2'], 'group': 0, 'string': '|', 
'keyname': 'bar', 'pressed': False, 'keyval': 124, 'keycode': 226}>)
     2017-10-17 14:31:33,462 AltGr_modifiers(['mod1'], True) AltGr=mod5, 
add=['mod5'], clear=['mod1', 'mod2', 'control']
     2017-10-17 14:31:33,472 mask_to_names(<flags GDK_MOD1_MASK of type 
GdkModifierType>) GetKeyState(VK_NUMLOCK)=1, names=['mod5', 'mod2']
     2017-10-17 14:31:33,482 parse_key_event(<gtk.gdk.Event at 
000000001d5eba80: GDK_KEY_RELEASE keyval=Control_L>, False)=<GTKKeyEvent 
object, contents: {'modifiers': ['mod5', 'mod2'], 'group': 0, 'string': 
'', 'keyname': 'Control_L', 'pressed': False, 'keyval': 65507, 
'keycode': 17}>
     2017-10-17 14:31:33,492 handle_key_action(GLClientWindow(3 : 
gtk2.GLWindowBacking(3, (178, 178), None)), <GTKKeyEvent object, 
contents: {'modifiers': ['mod5', 'mod2'], 'group': 0, 'string': '', 
'keyname': 'Control_L', 'pressed': False, 'keyval': 65507, 'keycode': 
17}>) wid=3
     2017-10-17 14:31:33,502 process_key_event: Control_L pressed=False, 
with GetKeyState(VK_RMENU)=-127
     2017-10-17 14:31:33,506 send_delayed_key() delayed_event=None
     2017-10-17 14:31:33,512 send_key_action(3, <GTKKeyEvent object, 
contents: {'modifiers': ['mod5', 'mod2'], 'group': 0, 'string': '', 
'keyname': 'Control_L', 'pressed': False, 'keyval': 65507, 'keycode': 17}>)
     2017-10-17 14:31:33,523 mask_to_names(<flags 0 of type 
GdkModifierType>) GetKeyState(VK_NUMLOCK)=1, names=['mod2']
     2017-10-17 14:31:33,529 parse_key_event(<gtk.gdk.Event at 
000000001d5eba80: GDK_KEY_RELEASE keyval=Alt_R>, False)=<GTKKeyEvent 
object, contents: {'modifiers': ['mod2'], 'group': 0, 'string': '', 
'keyname': 'Alt_R', 'pressed': False, 'keyval': 65514, 'keycode': 165}>
     2017-10-17 14:31:33,541 handle_key_action(GLClientWindow(3 : 
gtk2.GLWindowBacking(3, (178, 178), None)), <GTKKeyEvent object, 
contents: {'modifiers': ['mod2'], 'group': 0, 'string': '', 'keyname': 
'Alt_R', 'pressed': False, 'keyval': 65514, 'keycode': 165}>) wid=3
     2017-10-17 14:31:33,559 process_key_event: Alt_R pressed=False, 
with GetKeyState(VK_RMENU)=1
     2017-10-17 14:31:33,566 AltGr_modifiers(['mod2'], True) AltGr=mod5, 
add=['mod5'], clear=['mod1', 'mod2', 'control']
     2017-10-17 14:31:33,569 send_delayed_key() delayed_event=None
     2017-10-17 14:31:33,573 send_key_action(3, <GTKKeyEvent object, 
contents: {'modifiers': ['mod5'], 'group': -1, 'string': '', 'keyname': 
'', 'pressed': False, 'keyval': -1, 'keycode': -1}>)
     2017-10-17 14:31:35,004 mask_to_names(<flags 0 of type 
GdkModifierType>) GetKeyState(VK_NUMLOCK)=1, names=['mod2']
     2017-10-17 14:31:35,014 mask_to_names(<flags 0 of type 
GdkModifierType>) GetKeyState(VK_NUMLOCK)=1, names=['mod2']
     2017-10-17 14:31:35,015 mask_to_names(<flags 0 of type 
GdkModifierType>) GetKeyState(VK_NUMLOCK)=1, names=['mod2']
     2017-10-17 14:31:35,015 mask_to_names(<flags 0 of type 
GdkModifierType>) GetKeyState(VK_NUMLOCK)=1, names=['mod2']
     2017-10-17 14:31:35,028 mask_to_names(<flags 0 of type 
GdkModifierType>) GetKeyState(VK_NUMLOCK)=1, names=['mod2']
     2017-10-17 14:31:35,096 mask_to_names(<flags 0 of type 
GdkModifierType>) GetKeyState(VK_NUMLOCK)=1, names=['mod2']
     2017-10-17 14:31:35,136 mask_to_names(<flags GDK_BUTTON1_MASK of 
type GdkModifierType>) GetKeyState(VK_NUMLOCK)=1, names=['mod2']
     2017-10-17 14:31:35,146 mask_to_names(<flags 0 of type 
GdkModifierType>) GetKeyState(VK_NUMLOCK)=1, names=['mod2']
     2017-10-17 14:31:35,157 mask_to_names(<flags GDK_BUTTON1_MASK of 
type GdkModifierType>) GetKeyState(VK_NUMLOCK)=1, names=['mod2']
     2017-10-17 14:31:35,177 mask_to_names(<flags GDK_BUTTON1_MASK of 
type GdkModifierType>) GetKeyState(VK_NUMLOCK)=1, names=['mod2']
     2017-10-17 14:31:35,208 mask_to_names(<flags GDK_BUTTON1_MASK of 
type GdkModifierType>) GetKeyState(VK_NUMLOCK)=1, names=['mod2']
     2017-10-17 14:31:35,228 mask_to_names(<flags 0 of type 
GdkModifierType>) GetKeyState(VK_NUMLOCK)=1, names=['mod2']
     2017-10-17 14:31:35,268 mask_to_names(<flags 0 of type 
GdkModifierType>) GetKeyState(VK_NUMLOCK)=1, names=['mod2']
     2017-10-17 14:31:35,278 mask_to_names(<flags GDK_CONTROL_MASK of 
type GdkModifierType>) GetKeyState(VK_NUMLOCK)=1, names=['control', 'mod2']
     2017-10-17 14:31:35,298 parse_key_event(<gtk.gdk.Event at 
000000001d5ebcd8: GDK_KEY_PRESS keyval=Control_L>, True)=<GTKKeyEvent 
object, contents: {'modifiers': ['control', 'mod2'], 'group': 0, 
'string': '', 'keyname': 'Control_L', 'pressed': True, 'keyval': 65507, 
'keycode': 17}>
     2017-10-17 14:31:35,299 handle_key_action(GLClientWindow(1 : 
gtk2.GLWindowBacking(1, (1135, 901), GBRP)), <GTKKeyEvent object, 
contents: {'modifiers': ['control', 'mod2'], 'group': 0, 'string': '', 
'keyname': 'Control_L', 'pressed': True, 'keyval': 65507, 'keycode': 
17}>) wid=1
     2017-10-17 14:31:35,312 process_key_event: Control_L pressed=True, 
with GetKeyState(VK_RMENU)=1
     2017-10-17 14:31:35,319 mask_to_names(<flags GDK_CONTROL_MASK of 
type GdkModifierType>) GetKeyState(VK_NUMLOCK)=1, names=['control', 'mod2']
     2017-10-17 14:31:35,327 parse_key_event(<gtk.gdk.Event at 
000000001d5ebcd8: GDK_KEY_PRESS keyval=c>, True)=<GTKKeyEvent object, 
contents: {'modifiers': ['control', 'mod2'], 'group': 0, 'string': 
'\x03', 'keyname': 'c', 'pressed': True, 'keyval': 99, 'keycode': 67}>
     2017-10-17 14:31:35,342 handle_key_action(GLClientWindow(1 : 
gtk2.GLWindowBacking(1, (1135, 901), GBRP)), <GTKKeyEvent object, 
contents: {'modifiers': ['control', 'mod2'], 'group': 0, 'string': 
'\x03', 'keyname': 'c', 'pressed': True, 'keyval': 99, 'keycode': 67}>) 
wid=1
     2017-10-17 14:31:35,361 send_delayed_key() delayed_event=(<bound 
method GTKKeyboardHelper.send_key_action of 
<xpra.client.gtk_base.gtk_keyboard_helper.GTKKeyboardHelper object at 
0x000000000a64b610>>, 1, <GTKKeyEvent object, contents: {'modifiers': 
['control', 'mod2'], 'group': 0, 'string': '', 'keyname': 'Control_L', 
'pressed': True, 'keyval': 65507, 'keycode': 17}>)
     2017-10-17 14:31:35,385 send_delayed_key() GetKeyState(VK_RMENU)=1
     2017-10-17 14:31:35,388 send_key_action(1, <GTKKeyEvent object, 
contents: {'modifiers': ['control', 'mod2'], 'group': 0, 'string': 
'\x03', 'keyname': 'c', 'pressed': True, 'keyval': 99, 'keycode': 67}>)
     2017-10-17 14:31:35,399 mask_to_names(<flags 0 of type 
GdkModifierType>) GetKeyState(VK_NUMLOCK)=1, names=['mod2']
     2017-10-17 14:31:35,405 parse_key_event(<gtk.gdk.Event at 
000000001d5ebcd8: GDK_KEY_RELEASE keyval=Control_L>, False)=<GTKKeyEvent 
object, contents: {'modifiers': ['mod2'], 'group': 0, 'string': '', 
'keyname': 'Control_L', 'pressed': False, 'keyval': 65507, 'keycode': 17}>
     2017-10-17 14:31:35,422 handle_key_action(GLClientWindow(1 : 
gtk2.GLWindowBacking(1, (1135, 901), GBRP)), <GTKKeyEvent object, 
contents: {'modifiers': ['mod2'], 'group': 0, 'string': '', 'keyname': 
'Control_L', 'pressed': False, 'keyval': 65507, 'keycode': 17}>) wid=1
     2017-10-17 14:31:35,438 process_key_event: Control_L pressed=False, 
with GetKeyState(VK_RMENU)=1
     2017-10-17 14:31:35,442 send_delayed_key() delayed_event=None
     2017-10-17 14:31:35,452 send_key_action(1, <GTKKeyEvent object, 
contents: {'modifiers': ['mod2'], 'group': 0, 'string': '', 'keyname': 
'Control_L', 'pressed': False, 'keyval': 65507, 'keycode': 17}>)
     2017-10-17 14:31:35,463 send_delayed_key() delayed_event=None



More information about the shifter-users mailing list