Skip to content
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

No easy way to input CJK languages #103

Open
kotatsuyaki opened this issue Aug 11, 2018 · 20 comments
Open

No easy way to input CJK languages #103

kotatsuyaki opened this issue Aug 11, 2018 · 20 comments
Labels
Status: Confirmed Verified by someone other than the reporter

Comments

@kotatsuyaki
Copy link

kotatsuyaki commented Aug 11, 2018

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?

@jlnr
Copy link
Member

jlnr commented Aug 21, 2018

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-keyboard also 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 Names of IBus input sources not shown switchboard-plug-keyboard#173 and No Chinese/Japanese keyboard layouts switchboard-plug-keyboard#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-keyboard has an Input Method Settings button that launches ibus-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-setup has its own list of languages that is unrelated to the GNOME Input Sources). One more reason to sidestep ibus-setup if 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: Add a link to ibus settings switchboard-plug-keyboard#168 (comment) (> 😁).
    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?

@jlnr
Copy link
Member

jlnr commented Aug 21, 2018

Also, sorry @AkitakiKou for just dropping my notes into your issue 😅 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.

@nya-su
Copy link

nya-su commented Oct 17, 2018

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.

@nya-su
Copy link

nya-su commented Oct 26, 2018

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.

@qiuxiaomu
Copy link

qiuxiaomu commented Nov 22, 2018

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.

@gasolin
Copy link

gasolin commented Jan 3, 2019

I refered this tutorial to setup cjk input and it works well
https://medium.com/@ryonakaknock3/elementary-os-5-0-juno-がつasdasdasdいにリリース-3f0671d4588c

@sprite-1
Copy link

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 👍

@ryonakano
Copy link
Contributor

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-mozc or 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 -drx to 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.

@hou2zi0
Copy link

hou2zi0 commented Feb 22, 2020

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?

@davidmhewitt
Copy link
Member

@ryonakano Can you update this issue with the current status of where we're up to on this?

@ryonakano
Copy link
Contributor

ryonakano commented Feb 23, 2021

OK, CJK l10n situations on the latest Odin Daily:

It still requires technical method to type CJK languages other than in non-CJK systems but the situation getting better than Hera.

@jeremypw
Copy link
Collaborator

jeremypw commented Feb 23, 2021

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.

@ghost
Copy link

ghost commented Aug 2, 2021

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.

@jeremypw
Copy link
Collaborator

jeremypw commented Aug 2, 2021

@cnmade Is this the problem you mean? I tried using the "Intelligent Pinyin" input engine.
IntelligentPinyin

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.

@ghost
Copy link

ghost commented Aug 2, 2021

@jeremypw yes,the first option can not see. really ugly experience. I am update to latest version , still not ok.

Thanks.

@jeremypw
Copy link
Collaborator

jeremypw commented Aug 2, 2021

@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.

@jeremypw
Copy link
Collaborator

jeremypw commented Aug 2, 2021

Just tried ibus-pinyin on Ubuntu Focal (on which Odin is based):

Screenshot from 2021-08-02 18 36 38

Looks like it is an elementaryos stylesheet issue 😞 (although it is a weird way to show the cursor position).

@jeremypw
Copy link
Collaborator

jeremypw commented Aug 2, 2021

Just noticed that this issue is already raised in elementary/switchboard-plug-keyboard#359 but it needs to be transferred to the stylesheet project.

@jeremypw
Copy link
Collaborator

jeremypw commented Aug 2, 2021

I have now raised an issue here: elementary/stylesheet#1067

@jeremypw
Copy link
Collaborator

jeremypw commented Aug 2, 2021

Note that fcitx-pinyin is likely to suffer the same problem.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Status: Confirmed Verified by someone other than the reporter
Projects
None yet
Development

No branches or pull requests