chase / awrit

A full graphical web browser for Kitty terminal with mouse and keyboard support
Other
449 stars 16 forks source link

[Feature] IME Support #35

Open CyanChanges opened 7 months ago

CyanChanges commented 7 months ago

For Chinese and Japanese users, IME is required to type Chinese or Japanese words.

If you could make IME work, it will be very nice.

chase commented 7 months ago

Admittedly, I looked into this when I started but since I rarely use awrit in a way that needs input, I gave up. There is little documentation for Chromium Embedded Framework for IME.

There some bugs related to IME's and off-screen rendering (OSR) with Chromium Embedded Framework: https://github.com/chromiumembedded/cef/issues/3544

There needs to be two implementations, one for macOS and one for Linux. macOS might be easier because there are tests for it: https://github.com/chromiumembedded/cef/blob/master/tests/cefclient/browser/text_input_client_osr_mac.h https://github.com/chromiumembedded/cef/blob/master/tests/cefclient/browser/text_input_client_osr_mac.mm

There are tests regarding IME here: https://github.com/chromiumembedded/cef/blob/2c5dd120c74a2dc61f07b9043ed26ccb977298c3/tests/ceftests/os_rendering_unittest.cc#L161-L167


If you have time, maybe you can look into how it should be implemented and make a pull request.

chase commented 6 months ago

@CyanChanges If you're on Linux, do you use ibus to use IME with Kitty? If not, what do you use?

My colleague brought up that Google has an input tools extension which has its own implementation of IME which is available as a Chrome extension: https://www.google.com/inputtools/try/

Could you try using this and telling me if having input like this would help?