wslg
wslg copied to clipboard
IME (Input Method Editor) Support
WSLg should implement IME support for CJK locale scenarios. Currently, the WSLg & WSL architecture can support existing Linux IME facilities (e.g. ibus) as tested, however, manual configuration and startup is required.
Solution An ideal solution should reuse the Windows IME infrastructure and transport the input content to Linux window for the best experience. However, this might needs much engineering effort.
Alternative Solutions
Alternatively, WSLg can start the IME daemon and configure required environment variables (e.g. QT_IM_MODULE, IBUS_USE_PORTAL, GTK_IM_MODULE and such) without manual steps.
Additional context
- Having proper IME support is almost a must-need for CJK locale users.
- ~IME input flyout locations might need to be validated, but so far looks okay (60%) to me when using IBUS on WSLg.~ Update: Not really. Layout bug: https://github.com/microsoft/wslg/issues/8
also i met a problem about the absence of fonts. and solved by adding a soft link :
ln -s /mnt/c/Windows/Fonts /usr/share/fonts/<anyName>
fc-cache -fv
I would prefer Windows native IME over ibus/fcitx. to be honest, despite their developers' hard work, which is very appreciated, IMEs on Linux have yet not reached the quality of those on Windows (which are supported by big companies). Windows native IME also provides a more smooth switching between Windows and WSLg apps.
Maybe integrating the ibus daemon icon in the right side of the windows taskbar along could be a good idea.
Are there any examples or tutorials of ibus working on WSL? I managed to get fcitx to work on X11 applications like Emacs within WSL through some googling, but I can't find any information of ibus working on WSL.
maybe we can create a remote virtual keyboard communicate with local ime in windows and set input-method section in weston.ini.
dig a litter more about input-method protocol and text-input protocol on Weston. using zwp_input_method_v1_listener and wl_keyboard_listener together will get the job done. Weston provides a demo in clients/simple-im.c and clients/keyboard.c to illustrate how to use these APIs. I'll give it a try on solving this issue.
Is this really a problem that can be solved within the scope of this git repository? It looks like there is some internal processing of Windows involved.🤔
The ideal solution would be using local (Windows) IME to convert key presses, and injecting converted text into remote (Linux) applications.
RDP protocol should have this capability, as the official Remote Desktop app, by Microsoft, for Android and iOS, can do this. However, Windows version of Remote Desktop client might not have this feature, and WSLGd needs to handle this in Weston.
Agree with @ruixingw, integration with Windows native IME is an important part to involve WSL in Windows experience.
In WSA, there's a virtual IME which interact with Windows IME input and handle flyout properly, that I can use my familiar IME in WSA apps.
any update?