#185 Evaluate if we can have ibus-chewing as default IME for Taiwan
Opened 3 months ago by pnemade. Modified 24 days ago

As per discussed in today's i18n meeting. Based on request received on #i18n matrix channel, some user asked to change to make ibus-chewing the default IM for Traditional Chinese users.
@pwu has been assigned to provide his feedback here.

Text from Matrix Chat

Kan-Ru Chen
Hello, I'm looking into proposing a change to make ibus-chewing the default IM for Traditional Chinese users. I'm one of the upstream maintainers so I might be biased, but ibus-chewing is one of the most popular and featureful IM here. I recently switched back to Fedora (Silverblue) and it surprised me that the current default is ibus-libzhuyin. I also saw local community asking for ibus-chewing as the default. I'd like to start the discussion and necessary steps to propose the change for F41. I also plan to help fix any issues encountered.

Jens Petersen
Kan-Ru Chen : that's interesting - what do you see as the main differences or advantages? Good to know Chewing is well and alive. How are other distros doing?

Kan-Ru Chen
The main advantage is that Chewing provides more features similar to other IMs you can find on other non-free OSs that Traditional Chinese users are used to. libzhuyin upstream does not use Traditional Chinese so they can only provide limited support.

The Chewing community also has a more vibrant community supported dictionary maintenance.

I know Debian was using ibus-chewing and switched to fcitx-chewing at some point, but they still use Chewing as the default.

Kan-Ru Chen
Chewing also has been ported to more OSs so users can reuse their user dictionary or habits on other OSs.

@kanru, can you outline in more details what features ibus-chewing would provide
and the specific advantages over ibus-libzhuyin?

I think you can also talk about libchewing vs libzhuyin in general, since you seem to be the upstream maintainer.

Do you think there will be a new ibus-chewing release anytime soon? (last release was 2016?)

@petersen sure thing.

Disclaimer: anything I said about ibus-libzhuyin is only according to me skimming through the code base.

Features ibus-chewing would provide or advantages over ibus-libzhuyin

  1. maint: ibus-chewing has user base that can report issues. ibus-libzhuyin was in an unusable state for I'm not sure how long but no one has filed issues to Fedora or upstream.
  2. maint: ibus-chewing has maintainer that can fix issues. ibus-libzhuyin's answer for maintenance was (translated by google) "I haven't had time to update this project recently. Sorry, I am not very familiar with Traditional Chinese. I may need users who understand Traditional Chinese to help maintain..." https://github.com/libzhuyin/ibus-libzhuyin/issues/76
  3. tech: ibus-chewing is just a thin-wrapper of libchewing. libchewing provides abstract UI layer so it was easier to integrate with different IM services. This means ibus-chewing has less code and shares feature with other chewing ports. ibus-libzhuyin has logic in both ibus-zhuyin and libzhuyin.
  4. feat: libchewing has usage document and API document (https://github.com/chewing/libchewing/). ibus-zhuyin has none as far as I know.
  5. feat: libchewing has more user options including whether to learn user phrase, phrase selection behavior, auto advance cursor after selection, auto commit behavior (full list https://docs.rs/chewing/0.6.0-alpha.2/chewing/capi/globals/index.html). ibus-zhuyin is less tunable
  6. feat: libchewing ensures the phrase candidates list is stable sorted. Users can rely on the order for phrase selection.
  7. feat: libchewing has a cross-platform user dictionary editor that uses dictionary API provided by libchewing.
  8. feat: libchewing has optimized the phrase selection shortcuts. Anecdotes say it's intuitive compare to ibus-zhuyin (https://fedora-tw.org/t/ibus-libzhuyin/715)
  9. feat: libchewing dictionary is decoupled from keymaps. The system dictionary can be upgraded independently. New keymaps can be added without recompile the dictionary. It seems libzhuyin may need to rebuild the dictionary.

The linked documents has more detailed feature explanation. I can add more if needed.

We will release libchewing 0.6.0 soon (https://github.com/chewing/libchewing/releases/tag/v0.6.0-rc.2) and we plan to make at least one more release this year.

Rough roadmap:

  • 0.7.0 - feature parity of the Rust rewrite. Finalize default user dictionary on disk format. Fuzzing.
  • 0.8.0 - stabilize the Rust implementation and switch to as default
  • 0.9.0 - stabilize the Rust API

Some features I'd like to develop that is unlocked by the Rust rewrite

  • Simple mode that disables automatic phrasing and ensures the phrase candidates list is stable sorted. More advanced users can use this mode to achieve fast and accurate typing.
  • Initial only mode that allow users to only input partial syllables, similar to how pinyin and some smartphone keyboard works.
  • Toneless mode that allow users to skip the tone. It will be useful for users using pinyin and/or learning Chinese as second language.
  • Multi dictionary so users can load domain specific dictionaries.
  • Sharable system and user dictionary. The new on-disk format can store author and copyright metadata so users can share their dictionary more easily.

ibus-chewing currently is not maintained by the libchewing core team. I do plan to contribute to ibus-chewing and make new releases (takeover maintenance if necessary).

  • maint: update ibus-chewing and ibus-chewing-setup to GTK4
  • maint: integrate new options provided by new libchewing releases.

I think when I write the ibus-libzhuyin project, it supports most options in ibus-chewing setup dialog.

Just released ibus-libzhuyin 1.10.3 in upstream today.

Text from Matrix meeting today:

I think I fixed two issues in ibus-libzhuyin...
thanks for fixing those issues Peng
Jens Petersen
Sorry but that doesn't really answer the question yet though 🙂
Maybe you can discuss with someone from Taiwan
Okay let's check update on this by next meeting then
Jens Petersen
I guess one advantage of yours is the input suggestions?
Jens Petersen

Peng will check with Taiwan community about ibus-chewing as default installed IME status in Fedora.

We discussed this again in yesterday's i18n meeting.

Overall looks okay so far but we would like to see more testing and feedback:

  • test and compare ibus-libzhuyin vs ibus-chewing
  • discussion on Fedora Discourse and mailing lists about the proposed default change

Kanru also said he would try to bring it to the attention of the Taiwan community to help with this.

Login to comment on this ticket.