switchboard-plug-keyboard
switchboard-plug-keyboard copied to clipboard
No easy way to input CJK languages
Inputting CJK languages on Elementary is currently not user-friendly. Most solutions requires the use of commands, to install ibus or fcitx packages and activating the input method by im-config, which isn't the "promoted way" of installing software on Elementary OS aka the AppCenter. Is there any plan to add native support for these languages?
I'm a Linux IME newbie, but this is my understanding of the state of things on Juno right now.
Fresh user accounts have XKB and (for some languages) IBus input sources. Using the IBus ones is not easy because:
- IBus input sources are not included in
wingpanel-indicator-keyboard(see https://github.com/elementary/wingpanel-indicator-keyboard/blob/master/src/LayoutsManager.vala#L88) wingpanel-indicator-keyboardalso doesn't have UI for quickly changing IME settings. From looking at the GNOME blog post linked above, it seems that there is an API for this that the indicator could use?- IBus input sources are displayed as invisible entries in
switchboard-plug-keyboard, see https://github.com/elementary/switchboard-plug-keyboard/issues/173 and https://github.com/elementary/switchboard-plug-keyboard/issues/2- (I've started working on a PR, but it needs more work)
- It's unfortunate that switchboard-plug-keyboard and wingpanel-indicator-keyboard have duplicated code right now for parsing evdev.xml. We'll need even more duplicated code to support IBus in both projects. Is there any common library that this code could be moved to? Seems too specific for Granite. Edit: This could probably be handled with a libpantheon-keyboard library in analogy to libpantheon-networking?
switchboard-plug-keyboardhas an Input Method Settings button that launchesibus-setup.- I think this button should jump straight to the settings for the specific language, not to the global IBus configuration, if this is possible.
- And the button should not be displayed when an XKB layout is selected.
- I'm not sure why
ibus-setuphas its own list of languages that is unrelated to the GNOME Input Sources). One more reason to sidestepibus-setupif possible?
- IBus does not start automatically, even for users with an IBus input source. The only GUI way to start it seems to be the "Input Method Settings" button mentioned above, which leads to these mildly confusing dialog boxes: https://github.com/elementary/switchboard-plug-keyboard/pull/168#issuecomment-401551907 (
>:grin:). Can/should elementaryOS just always start and quit IBus automatically based on the configured input sources? How do other distros handle this?
Is improving IBus handling even worthwhile, or would experienced CJK users install different IMEs like fcitx anyway?
Also, sorry @AkitakiKou for just dropping my notes into your issue :sweat_smile: I wanted to make sure I'm on the right track here in the high level "os" project before sending patches to individual repositories. Please let me know if this isn't going in the right direction.
for a record, I found a guy setup fcitx input method on Juno 5 beta. He launched fictx configuration tool and toggled "panel hiding mode", or something like that on "Appearance" tab, to show fictx panel on the desktop, . However, during testing, He recognized the panel became malfunction afterwards.
今度はベータ版の elementary OS 5.0 Juno betaをインストールしました。
Hope someone will test with official release soon and come up with better support.
I found, at least for Japanese input setup, it's relatively easy to configure. 'locale' set to ja_JP.UTF-8 brings ibus-mozc showing up in the ibus preferences. But, without the locale, ibus-daemon doesn't automatically launched at startup so need to be put an entry in applications setting in switchboard.
I am running Juno Live a fresh install 30 mins ago and setting up fcitx googlepinyin is just to no avail and a bit PITA.
like @jlnr mentioned it seems Juno comes with Ibus input sources but there's just no good ibus pinyin system out there and setting up ibus input source didn't work (selecting a source from ibus config, after starting ibus-daemon everything single time, didn't have anything in wingpanel).
Deleting ibus and doing the fcitx and im-config combo didn't work either. nothing showed up in wingpanel.
I remember at least loki worked; it just seems so that Juno has double hands down with ibus and fcitx just got ditched. Even installing it doesn't mean a thing.
I refered this tutorial to setup cjk input and it works well https://medium.com/@ryonakaknock3/elementary-os-5-0-juno-がつasdasdasdいにリリース-3f0671d4588c
I refered this tutorial to setup cjk input and it works well https://medium.com/@ryonakaknock3/elementary-os-5-0-juno-がつasdasdasdいにリリース-3f0671d4588c
Thanks a lot! This helped me get an idea on how to do it 👍
Just left CJK l10n situations on the latest Juno. Some might duplicate your comments.
- IBus is installed by default even if you don't choose CJK languages like English.
- Also, you don't need to install input method engines by running
sudo apt install ibus-mozcor something like that, since most of IBus engines seem to be installed by default regardless of language chosen during the installation. - However, ibus-daemon, which is the daemon for IBus and handles inputting CJK, does not start automatically if you're running your system other than in CJK languages. For example, if your system language is Japanese, you can type Japanese without configuring anything, while if your system language is English, you need to register
ibus-daemon -drxto startup applications. - Also, there is no indication for users that IBus is available by default. In Ubuntu, there is an indicator to show the current input mode or available input method engines. Other distros also seem to have this kind of indicator. However, elementary OS does not have an indicator to show input method engines. Thus, users assume that elementary OS still does not install input method engines by default.
- There is no "native" Plug to customize input method engines. We can add/remove preferred input method engines in IBus Preferences on Juno because Switchboard Keyboard Plug now has a link to IBus Preferences (see this PR for more details), but we can't install/delete them there. Also, providing a way to configure input method engines in the "native" way of elementary OS makes those who are accustomed to using elementary OS feel comfortable.
I've been working on this as Switchboard Input Method Plug. Adding/removing/installing input method engines are already supported.
As a consequence, it still requires some methods to input CJK languages other than in non-CJK systems.
I tried several approaches recommended in blogpost and alike to no avail. Is there a recommended way to get CJK input support to work on ElementaryOS 5.1 in an environment set to English as system language but using a German QWERTZ layout (this is a major drawback in my opinion)? The Switchboard plugin mentioned above did not work for me as well. Just out of curiosity: Does anyone know why this is still a recurring issue in OSs? Is the user base for multilingual and multiscriptual input just too small to validate proper support in most distros or is the difficulty to implement this feature in an (Linux) OS enormous?
@ryonakano Can you update this issue with the current status of where we're up to on this?
OK, CJK l10n situations on the latest Odin Daily:
- [x] IBus is shipped by default (same with Hera)
- [x] No need to install IBus engines manually (same with Hera)
- [ ] ibus-daemon does not start automatically if you're running your system other than in CJK languages (same with Hera): Might be some patching issue?
- [x] An indicator for IBus engines: Now @jeremypw working on this in elementary/wingpanel-indicator-keyboard#96 :tada:
- [x] Native plug to customize input method engines: Now it's officially available in the keyboard plug. This is a separated preference from xkb layout currently, but @jeremypw working to show both xkb and ibus layout in the layout view in elementary/switchboard-plug-keyboard#341
It still requires technical method to type CJK languages other than in non-CJK systems but the situation getting better than Hera.
The wingpanel indicator could probably be made to start the ibus-daemon automatically if there are ibus methods in the input source list. So it would not start oob but once an input method has been selected in settings (which has a button to start the daemon) it would start automatically when the wingpanel indicator initialises.
There may be a better way though.
I got the same issue, the ibus-libpinyin can not show the input popup with right color , we can not see the text(because all text and background was black.)
The most good input method is Fcitx. but it not has an indicator.
(Gnome, and KDE can display right indicator for fcitx )
So is it a bug or a feature that elementary can not display indicator.
@cnmade Is this the problem you mean? I tried using the "Intelligent Pinyin" input engine.

Looks like only the first option is affected (and you can see the character pre-entered in the document). It maybe some theme compatibility issue probably in libpinyin (?). Ideally it should be fixed there.
It would take quite a lot of work to implement Fcitx awareness in the Switchboard and Wingpanel especially as there does not seem to be any Vala language binding for it at the moment. This is one reason why Elementary does not currently support it (Elementary Switchboard and Wingpanel is written in Vala).
You are right however that an internet search indicates that it is the preferred input framework for Pinyin at the moment. Lets hope ibus-pinyin is improved.
@jeremypw yes,the first option can not see. really ugly experience. I am update to latest version , still not ok.
Thanks.
@cnmade Do you know whether this issue with ibus-libpinyin started recently (i.e. in Odin) or was it the same in Hera (and before). Do you know if it happens under e.g. Ubuntu? If it only happens under elementaryos then we may be able to fix it by tweaking the stylesheet. Lets hope so.
Just tried ibus-pinyin on Ubuntu Focal (on which Odin is based):

Looks like it is an elementaryos stylesheet issue :disappointed: (although it is a weird way to show the cursor position).
Just noticed that this issue is already raised in https://github.com/elementary/switchboard-plug-keyboard/issues/359 but it needs to be transferred to the stylesheet project.
I have now raised an issue here: https://github.com/elementary/stylesheet/issues/1067
Note that fcitx-pinyin is likely to suffer the same problem.