Hello Previously i played a bit around with setxkbmap but couldn't get a satisfactorily response. Currently I use: "setxkbmap -model pc105 -layout ch -variant de_Sundeadkeys" for a swiss german keyboard layout. But actually all german umlaut keys seems to be returning only the ü (ue) key although the traced keyboard events (as with WINEDEBUG option) responses diffrent keyboard events. I attached all traces for the diffrent keybaord events. Eventually You can see someting in this I read it but couldn't get a reasonable information out of the traces.
Thanks Roland Kaeser Marcus Meissner wrote: It reads raw X events, and translates them multiple times between different representations (X keycodes, scancodes, windows virtkeys). You could run with: WINEDEBUG=+key,+keyboard wine program.exe and see if there is any useful debugging info (check what happens when you type an umlaut). Ciao, Marcus
trace:key:X11DRV_KeyEvent type 2, window 4a00026, state 0x0010, keycode 0x0030 trace:key:X11DRV_KeyEvent state = 10 nbyte = 2, status 0x4 trace:key:X11DRV_KeyEvent KeyPress : keysym=E4 (adiaeresis), # of chars=2 / 0xc3 / 'ä' trace:key:EVENT_event_to_vkey e->keycode = 30 trace:key:X11DRV_KeyEvent keycode 0x30 converted to vkey 0xc0 trace:key:X11DRV_KeyEvent bScan = 0x29. trace:key:X11DRV_send_keyboard_input wParam=00c0, lParam=00290001, InputKeyState=c0 trace:key:GetKeyState key (0x10) -> 0 trace:key:GetKeyState key (0x12) -> 1 trace:key:GetKeyState key (0x11) -> 0 trace:key:GetKeyState key (0x11) -> 0 trace:key:TranslateMessage Translating key VK_OEM_3 (00c0), scancode 29 trace:key:GetKeyboardState (0x406bfd24) trace:keyboard:X11DRV_ToUnicodeEx NumLockMask = 0010 trace:keyboard:X11DRV_ToUnicodeEx AltGrMask = 0010 trace:key:X11DRV_ToUnicodeEx (00C0, 0029) : faked state = 0x0010 trace:key:EVENT_event_to_vkey e->keycode = 22 trace:keyboard:X11DRV_ToUnicodeEx Found keycode 34 (0x22) trace:key:X11DRV_ToUnicodeEx type 2, window 4a00026, state 0x0010, keycode 0x0022 trace:key:X11DRV_ToUnicodeEx Translating char 0xc3 to unicode trace:key:X11DRV_ToUnicodeEx ToUnicode about to return 1 with char fc trace:key:TranslateMessage 1 -> PostMessageW(0x30156,WM_CHAR,00fc,00290001) trace:key:GetKeyState key (0x10) -> 0 trace:key:GetKeyState key (0x11) -> 0 trace:key:GetKeyState key (0x12) -> 1 trace:keyboard:X11DRV_VkKeyScanEx wChar 0x7e -> cChar '~' trace:keyboard:X11DRV_VkKeyScanEx retrying with | 0xFE00 trace:keyboard:X11DRV_VkKeyScanEx '~'(0x7e, 126): got keycode 00 (0) trace:keyboard:X11DRV_VkKeyScanEx keycode for '~' not found, returning -1 trace:keyboard:X11DRV_VkKeyScanEx wChar 0x60 -> cChar '`' trace:keyboard:X11DRV_VkKeyScanEx '`'(0x60, 96): got keycode 0x37 (55) warn:keyboard:X11DRV_VkKeyScanEx Keysym 60 not found while parsing the keycode table trace:keyboard:X11DRV_VkKeyScanEx wChar 0x3c -> cChar '<' trace:keyboard:X11DRV_VkKeyScanEx '<'(0x3c, 60): got keycode 0x5e (94) trace:keyboard:X11DRV_VkKeyScanEx ... returning 0xe2 trace:keyboard:X11DRV_VkKeyScanEx wChar 0x2c -> cChar ',' trace:keyboard:X11DRV_VkKeyScanEx ','(0x2c, 44): got keycode 0x3b (59) trace:keyboard:X11DRV_VkKeyScanEx ... returning 0xbc trace:keyboard:X11DRV_VkKeyScanEx wChar 0x27 -> cChar ''' trace:keyboard:X11DRV_VkKeyScanEx '''(0x27, 39): got keycode 0x14 (20) trace:keyboard:X11DRV_VkKeyScanEx ... returning 0xbd trace:keyboard:X11DRV_VkKeyScanEx wChar 0x5e -> cChar '^' trace:keyboard:X11DRV_VkKeyScanEx retrying with | 0xFE00 trace:keyboard:X11DRV_VkKeyScanEx '^'(0x5e, 94): got keycode 00 (0) trace:keyboard:X11DRV_VkKeyScanEx keycode for '^' not found, returning -1 trace:keyboard:X11DRV_VkKeyScanEx wChar 0x40 -> cChar '@' trace:keyboard:X11DRV_VkKeyScanEx '@'(0x40, 64): got keycode 0x0b (11) warn:keyboard:X11DRV_VkKeyScanEx Keysym 40 not found while parsing the keycode table trace:keyboard:X11DRV_VkKeyScanEx wChar 0x3a -> cChar ':' trace:keyboard:X11DRV_VkKeyScanEx ':'(0x3a, 58): got keycode 0x3c (60) trace:keyboard:X11DRV_VkKeyScanEx ... returning 0x1be trace:keyboard:X11DRV_VkKeyScanEx wChar 0x3e -> cChar '>' trace:keyboard:X11DRV_VkKeyScanEx '>'(0x3e, 62): got keycode 0x5e (94) trace:keyboard:X11DRV_VkKeyScanEx ... returning 0x1e2 trace:keyboard:X11DRV_VkKeyScanEx wChar 0x26 -> cChar '&' trace:keyboard:X11DRV_VkKeyScanEx '&'(0x26, 38): got keycode 0x0f (15) trace:keyboard:X11DRV_VkKeyScanEx ... returning 0x136 trace:keyboard:X11DRV_VkKeyScanEx wChar 0x2f -> cChar '/' trace:keyboard:X11DRV_VkKeyScanEx '/'(0x2f, 47): got keycode 0x10 (16) trace:keyboard:X11DRV_VkKeyScanEx ... returning 0x137 trace:key:GetKeyState key (0x10) -> 0 trace:key:GetKeyState key (0x11) -> 0 trace:key:GetKeyState key (0x12) -> 1 trace:key:GetKeyState key (0x10) -> 0 trace:key:X11DRV_KeyEvent type 3, window 4a00026, state 0x0010, keycode 0x0030 trace:key:X11DRV_KeyEvent state = 10 nbyte = 0, status 0x1 trace:key:X11DRV_KeyEvent KeyRelease : keysym=0 (No Name), # of chars=0 / 0x00 / '' trace:key:EVENT_event_to_vkey e->keycode = 30 trace:key:X11DRV_KeyEvent keycode 0x30 converted to vkey 0xc0 trace:key:X11DRV_KeyEvent bScan = 0x29. trace:key:X11DRV_send_keyboard_input wParam=00c0, lParam=c0290001, InputKeyState=40 trace:key:GetKeyState key (0x10) -> 0 trace:key:GetKeyState key (0x12) -> 1 trace:key:GetKeyState key (0x11) -> 0 trace:key:GetKeyState key (0x10) -> 0 trace:key:GetKeyState key (0x11) -> 0 trace:key:GetKeyState key (0x12) -> 1
trace:key:X11DRV_KeyEvent type 2, window 4a00026, state 0x0010, keycode 0x002f trace:key:X11DRV_KeyEvent state = 10 nbyte = 2, status 0x4 trace:key:X11DRV_KeyEvent KeyPress : keysym=F6 (odiaeresis), # of chars=2 / 0xc3 / 'ö' trace:key:EVENT_event_to_vkey e->keycode = 2f trace:key:X11DRV_KeyEvent keycode 0x2f converted to vkey 0xc0 trace:key:X11DRV_KeyEvent bScan = 0x29. trace:key:X11DRV_send_keyboard_input wParam=00c0, lParam=00290001, InputKeyState=c1 trace:key:GetKeyState key (0x10) -> 0 trace:key:GetKeyState key (0x12) -> 1 trace:key:GetKeyState key (0x11) -> 0 trace:key:GetKeyState key (0x11) -> 0 trace:key:TranslateMessage Translating key VK_OEM_3 (00c0), scancode 29 trace:key:GetKeyboardState (0x406bfd24) trace:keyboard:X11DRV_ToUnicodeEx NumLockMask = 0010 trace:keyboard:X11DRV_ToUnicodeEx AltGrMask = 0010 trace:key:X11DRV_ToUnicodeEx (00C0, 0029) : faked state = 0x0010 trace:key:EVENT_event_to_vkey e->keycode = 22 trace:keyboard:X11DRV_ToUnicodeEx Found keycode 34 (0x22) trace:key:X11DRV_ToUnicodeEx type 2, window 4a00026, state 0x0010, keycode 0x0022 trace:key:X11DRV_ToUnicodeEx Translating char 0xc3 to unicode trace:key:X11DRV_ToUnicodeEx ToUnicode about to return 1 with char fc trace:key:TranslateMessage 1 -> PostMessageW(0x30156,WM_CHAR,00fc,00290001) trace:key:GetKeyState key (0x10) -> 0 trace:key:GetKeyState key (0x11) -> 0 trace:key:GetKeyState key (0x12) -> 1 trace:keyboard:X11DRV_VkKeyScanEx wChar 0x7e -> cChar '~' trace:keyboard:X11DRV_VkKeyScanEx retrying with | 0xFE00 trace:keyboard:X11DRV_VkKeyScanEx '~'(0x7e, 126): got keycode 00 (0) trace:keyboard:X11DRV_VkKeyScanEx keycode for '~' not found, returning -1 trace:keyboard:X11DRV_VkKeyScanEx wChar 0x60 -> cChar '`' trace:keyboard:X11DRV_VkKeyScanEx '`'(0x60, 96): got keycode 0x37 (55) warn:keyboard:X11DRV_VkKeyScanEx Keysym 60 not found while parsing the keycode table trace:keyboard:X11DRV_VkKeyScanEx wChar 0x3c -> cChar '<' trace:keyboard:X11DRV_VkKeyScanEx '<'(0x3c, 60): got keycode 0x5e (94) trace:keyboard:X11DRV_VkKeyScanEx ... returning 0xe2 trace:keyboard:X11DRV_VkKeyScanEx wChar 0x2c -> cChar ',' trace:keyboard:X11DRV_VkKeyScanEx ','(0x2c, 44): got keycode 0x3b (59) trace:keyboard:X11DRV_VkKeyScanEx ... returning 0xbc trace:keyboard:X11DRV_VkKeyScanEx wChar 0x27 -> cChar ''' trace:keyboard:X11DRV_VkKeyScanEx '''(0x27, 39): got keycode 0x14 (20) trace:keyboard:X11DRV_VkKeyScanEx ... returning 0xbd trace:keyboard:X11DRV_VkKeyScanEx wChar 0x5e -> cChar '^' trace:keyboard:X11DRV_VkKeyScanEx retrying with | 0xFE00 trace:keyboard:X11DRV_VkKeyScanEx '^'(0x5e, 94): got keycode 00 (0) trace:keyboard:X11DRV_VkKeyScanEx keycode for '^' not found, returning -1 trace:keyboard:X11DRV_VkKeyScanEx wChar 0x40 -> cChar '@' trace:keyboard:X11DRV_VkKeyScanEx '@'(0x40, 64): got keycode 0x0b (11) warn:keyboard:X11DRV_VkKeyScanEx Keysym 40 not found while parsing the keycode table trace:keyboard:X11DRV_VkKeyScanEx wChar 0x3a -> cChar ':' trace:keyboard:X11DRV_VkKeyScanEx ':'(0x3a, 58): got keycode 0x3c (60) trace:keyboard:X11DRV_VkKeyScanEx ... returning 0x1be trace:keyboard:X11DRV_VkKeyScanEx wChar 0x3e -> cChar '>' trace:keyboard:X11DRV_VkKeyScanEx '>'(0x3e, 62): got keycode 0x5e (94) trace:keyboard:X11DRV_VkKeyScanEx ... returning 0x1e2 trace:keyboard:X11DRV_VkKeyScanEx wChar 0x26 -> cChar '&' trace:keyboard:X11DRV_VkKeyScanEx '&'(0x26, 38): got keycode 0x0f (15) trace:keyboard:X11DRV_VkKeyScanEx ... returning 0x136 trace:keyboard:X11DRV_VkKeyScanEx wChar 0x2f -> cChar '/' trace:keyboard:X11DRV_VkKeyScanEx '/'(0x2f, 47): got keycode 0x10 (16) trace:keyboard:X11DRV_VkKeyScanEx ... returning 0x137 trace:key:GetKeyState key (0x10) -> 0 trace:key:GetKeyState key (0x11) -> 0 trace:key:GetKeyState key (0x12) -> 1 trace:key:GetKeyState key (0x10) -> 0 trace:key:X11DRV_KeyEvent type 3, window 4a00026, state 0x0010, keycode 0x002f trace:key:X11DRV_KeyEvent state = 10 nbyte = 0, status 0x1 trace:key:X11DRV_KeyEvent KeyRelease : keysym=0 (No Name), # of chars=0 / 0x00 / '' trace:key:EVENT_event_to_vkey e->keycode = 2f trace:key:X11DRV_KeyEvent keycode 0x2f converted to vkey 0xc0 trace:key:X11DRV_KeyEvent bScan = 0x29. trace:key:X11DRV_send_keyboard_input wParam=00c0, lParam=c0290001, InputKeyState=41 trace:key:GetKeyState key (0x10) -> 0 trace:key:GetKeyState key (0x12) -> 1 trace:key:GetKeyState key (0x11) -> 0 trace:key:GetKeyState key (0x10) -> 0 trace:key:GetKeyState key (0x11) -> 0 trace:key:GetKeyState key (0x12) -> 1
trace:key:X11DRV_KeyEvent type 2, window 4a00026, state 0x0010, keycode 0x0022 trace:key:X11DRV_KeyEvent state = 10 nbyte = 2, status 0x4 trace:key:X11DRV_KeyEvent KeyPress : keysym=FC (udiaeresis), # of chars=2 / 0xc3 / 'ü' trace:key:EVENT_event_to_vkey e->keycode = 22 trace:key:X11DRV_KeyEvent keycode 0x22 converted to vkey 0xc0 trace:key:X11DRV_KeyEvent bScan = 0x29. trace:key:X11DRV_send_keyboard_input wParam=00c0, lParam=00290001, InputKeyState=c1 trace:key:GetKeyState key (0x10) -> 0 trace:key:GetKeyState key (0x12) -> 1 trace:key:GetKeyState key (0x11) -> 0 trace:key:GetKeyState key (0x11) -> 0 trace:key:TranslateMessage Translating key VK_OEM_3 (00c0), scancode 29 trace:key:GetKeyboardState (0x406bfd24) trace:keyboard:X11DRV_ToUnicodeEx NumLockMask = 0010 trace:keyboard:X11DRV_ToUnicodeEx AltGrMask = 0010 trace:key:X11DRV_ToUnicodeEx (00C0, 0029) : faked state = 0x0010 trace:key:EVENT_event_to_vkey e->keycode = 22 trace:keyboard:X11DRV_ToUnicodeEx Found keycode 34 (0x22) trace:key:X11DRV_ToUnicodeEx type 2, window 4a00026, state 0x0010, keycode 0x0022 trace:key:X11DRV_ToUnicodeEx Translating char 0xc3 to unicode trace:key:X11DRV_ToUnicodeEx ToUnicode about to return 1 with char fc trace:key:TranslateMessage 1 -> PostMessageW(0x30156,WM_CHAR,00fc,00290001) trace:key:GetKeyState key (0x10) -> 0 trace:key:GetKeyState key (0x11) -> 0 trace:key:GetKeyState key (0x12) -> 1 trace:keyboard:X11DRV_VkKeyScanEx wChar 0x7e -> cChar '~' trace:keyboard:X11DRV_VkKeyScanEx retrying with | 0xFE00 trace:keyboard:X11DRV_VkKeyScanEx '~'(0x7e, 126): got keycode 00 (0) trace:keyboard:X11DRV_VkKeyScanEx keycode for '~' not found, returning -1 trace:keyboard:X11DRV_VkKeyScanEx wChar 0x60 -> cChar '`' trace:keyboard:X11DRV_VkKeyScanEx '`'(0x60, 96): got keycode 0x37 (55) warn:keyboard:X11DRV_VkKeyScanEx Keysym 60 not found while parsing the keycode table trace:keyboard:X11DRV_VkKeyScanEx wChar 0x3c -> cChar '<' trace:keyboard:X11DRV_VkKeyScanEx '<'(0x3c, 60): got keycode 0x5e (94) trace:keyboard:X11DRV_VkKeyScanEx ... returning 0xe2 trace:keyboard:X11DRV_VkKeyScanEx wChar 0x2c -> cChar ',' trace:keyboard:X11DRV_VkKeyScanEx ','(0x2c, 44): got keycode 0x3b (59) trace:keyboard:X11DRV_VkKeyScanEx ... returning 0xbc trace:keyboard:X11DRV_VkKeyScanEx wChar 0x27 -> cChar ''' trace:keyboard:X11DRV_VkKeyScanEx '''(0x27, 39): got keycode 0x14 (20) trace:keyboard:X11DRV_VkKeyScanEx ... returning 0xbd trace:keyboard:X11DRV_VkKeyScanEx wChar 0x5e -> cChar '^' trace:keyboard:X11DRV_VkKeyScanEx retrying with | 0xFE00 trace:keyboard:X11DRV_VkKeyScanEx '^'(0x5e, 94): got keycode 00 (0) trace:keyboard:X11DRV_VkKeyScanEx keycode for '^' not found, returning -1 trace:keyboard:X11DRV_VkKeyScanEx wChar 0x40 -> cChar '@' trace:keyboard:X11DRV_VkKeyScanEx '@'(0x40, 64): got keycode 0x0b (11) warn:keyboard:X11DRV_VkKeyScanEx Keysym 40 not found while parsing the keycode table trace:keyboard:X11DRV_VkKeyScanEx wChar 0x3a -> cChar ':' trace:keyboard:X11DRV_VkKeyScanEx ':'(0x3a, 58): got keycode 0x3c (60) trace:keyboard:X11DRV_VkKeyScanEx ... returning 0x1be trace:keyboard:X11DRV_VkKeyScanEx wChar 0x3e -> cChar '>' trace:keyboard:X11DRV_VkKeyScanEx '>'(0x3e, 62): got keycode 0x5e (94) trace:keyboard:X11DRV_VkKeyScanEx ... returning 0x1e2 trace:keyboard:X11DRV_VkKeyScanEx wChar 0x26 -> cChar '&' trace:keyboard:X11DRV_VkKeyScanEx '&'(0x26, 38): got keycode 0x0f (15) trace:keyboard:X11DRV_VkKeyScanEx ... returning 0x136 trace:keyboard:X11DRV_VkKeyScanEx wChar 0x2f -> cChar '/' trace:keyboard:X11DRV_VkKeyScanEx '/'(0x2f, 47): got keycode 0x10 (16) trace:keyboard:X11DRV_VkKeyScanEx ... returning 0x137 trace:key:GetKeyState key (0x10) -> 0 trace:key:GetKeyState key (0x11) -> 0 trace:key:GetKeyState key (0x12) -> 1 trace:key:GetKeyState key (0x10) -> 0 trace:key:X11DRV_KeyEvent type 3, window 4a00026, state 0x0010, keycode 0x0022 trace:key:X11DRV_KeyEvent state = 10 nbyte = 0, status 0x1 trace:key:X11DRV_KeyEvent KeyRelease : keysym=0 (No Name), # of chars=0 / 0x00 / '' trace:key:EVENT_event_to_vkey e->keycode = 22 trace:key:X11DRV_KeyEvent keycode 0x22 converted to vkey 0xc0 trace:key:X11DRV_KeyEvent bScan = 0x29. trace:key:X11DRV_send_keyboard_input wParam=00c0, lParam=c0290001, InputKeyState=41 trace:key:GetKeyState key (0x10) -> 0 trace:key:GetKeyState key (0x12) -> 1 trace:key:GetKeyState key (0x11) -> 0 trace:key:GetKeyState key (0x10) -> 0 trace:key:GetKeyState key (0x11) -> 0 trace:key:GetKeyState key (0x12) -> 1