-
Notifications
You must be signed in to change notification settings - Fork 310
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Keycode 121 and 122 (for Korean) are not recognized in xev #98
Comments
Revert "Merge pull request #97 from microsoft/user/benhill/rdp_file"
@letrhee , thanks for reporting, from weston.log, Korean keyboard is correctly reported but as you pointed in xev, it's not working properly. Would you please try the workaround described at #27 and see if this also helps for Korean, thanks! [20:29:49.003] kbd_layout:0xe0010412 kbd_type:0x8 kbd_subType:0x5 kbd_functionKeys:0xc |
@hideyukn88 Thanks for the advice. I've tried the following:
The root of the problem is that the Korean 106-key keyboard is not a normal keyboard layout. As far as I know, This keyboard is a variant of the international 104-key layout with two special keys added with odd behavior. Of course, Linux's keyboard layout doesn't have this configuration. Depending on the kernel, distribution, and keyboard driver, these two keys sometimes work differently, so many Koreans used The 104-key Korean variant, kr104, basically maps Right Alt to Hanyoung key (108, Hangul, instead of 121) and Right Ctrl to Hanja key (105, Hanja. instead of 122). I can use these keys to type Korean with fcitx. There is a similar case in the Virtual box, but since this virtual machine does not pass these two keys, I use Right Alt and Right Ctrl to input Korean. On the other hand, VMWare has the problem of misrecognizing these keys as those of a Japanese keyboard, and workarounds can be used. |
Jp106 keyboard has a similar problem.
but
|
Regarding to Japanese Yen/Vertical bar sign key between ^ and backspace key on Japanese OADG 106 physical hardware keyboard, the hardware scan code for that key is 0x7D (http://kbdlayout.info/kbd106/scancodes) but 0x7D is mapped to VK_NONE by WinPR (https://pub.freerdp.com/api/winpr_2include_2winpr_2input_8h.html)
Thus, WinPR's GetVirtualKeyCodeFromVirtualScanCode(0x7D, 4) returns VK_NONE, and this ends up scan code 0 in evdev from GetKeycodeFromVirtualKeyCode().
Eventually it needs to support RDP's Unicode input, so no more these conversions and it also allows IME on Windows side to be used to input CJK range characters. |
Jp106 keyboard with even more similar problems. The input method framework uses ibus, and the Japanese Input Method Editor uses mozc. scan code = 79 Henkan, 7b Muhenkan
but
|
@tomykaira, I have a fix for "Jp106 has ¥ (Yen sign) key at left side of backspace key" issue. @noriakia, I also have a fix for "Jp106 Henkan and Muhenkan" key, it was same root cause as Yen sign. @letrhee, regarding to Korean keyboard, thanks for your detail explanation of kr104 layout, I'm reaching out the engineer who familiar with Korean input system inside Microsoft. and will discuss for possible solution. Thanks all for trying out WSLg and reporting the issue! |
Fixed in 1.0.24 |
Uh... Probably 1.0.25 or later. |
@letrhee, right, sorry for confusion, microsoft/weston-mirror#25 is not in 1.0.24. |
It's not a big problem for me because the two keys are recognized, but it seems that the Hangul key and the Hanja key are swapped. |
Is this problem solved? |
@kim3321, what do you see with |
@hideyukn88 I used mobaXterm and execute xev. |
Environment
Steps to reproduce
xev &
Unlike other keys, not recognized
(FYI, media keys also do not work)
If you plan to integrate the Windows IME in WSLg, you may not need to pass these keys (except maybe some media keys). If not, I think it's a good idea to send the keystrokes to the Linux app.
WSL logs:
Expected behavior
Keycode appears normally in xev
This screenshot was taken using Ubuntu 20.04 running on Hyper-V (microsoft/linux-vm-tools#106 applied).
Actual behavior
Not recognized in xev
The text was updated successfully, but these errors were encountered: