[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