2 0 1 3 年 1 月 1 0 日

SCIM vs IBus (Linux Chinese, Japanese, Korean input method options)


If you study Chinese, Japanese or Korean and use Linux (as you should), you’ve probably encountered the issue of choosing an input method, namely: SCIM vs IBus. I’ve used both for some time now, so I thought I’d offer my thoughts on which of the two systems is better.

SCIM vs IBus

In case you’ve stumbled across this article and have no idea what I’m talking about, here’s a quick explanation. To type CJK (Chinese, Japanese and Korean) text, you need a special input method. This is just software that enables you to input CJK characters. The two main choices on Linux operating systems are SCIM and IBus, and it’s not immediately clear which is better.

What is SCIM?

SCIM stands for Smart Common Input Method. It’s extremely general and widely-applicable, and is also very modularised. In other words, SCIM is designed to be as universal as possible and to work for any language on any platform.

SCIM is also the older of the two projects discussed here, and as such is a bit more fully developed (although this is changing rapidly). Despite that, it’s famously prone to errors and weird behaviour (such as input methods randomly disappearing, or not working with other programs). The SCIM interface isn’t particularly beautiful, either.

What is IBus?

IBus is now the default CJK input method on Ubuntu and related operating systems (such as Linux Mint). It’s a newer project than SCIM, but is actually written in more widely-used programming languages, so it’s often easier to get it running on different systems (despite that being SCIM’s main aim).

The IBus interface is generally a lot nicer to look at than SCIM, and it tends to work more consistently without errors. However, it’s far from perfect, and I’ve had my fair share of weird behaviour from it (e.g. being unable to switch to Chinese input). Overall, though, I’d say that IBus works better than SCIM.

Choosing SCIM vs IBus

Based on the above, I think it’s fairly clear that if you can get IBus working on your system, use that. SCIM makes a fall-back option that may work on more systems, but it’s just too clunky and unreliable to make a first choice.

One thing to note is that SCIM and IBus both use the same input libraries, so the actually input options are largely the same. The difference is how they’re presented and how smoothly the input method works, and IBus wins on both these fronts.