On 2018年05月10日 10:30, Grady Martin via arch-general wrote:
From <https://wiki.archlinux.org/index.php/IBus>:
Additionally, to enable IBus for Qt applications, install the ibus-qt library.
Since 2012, I have used IBus with Qt applications and have yet to encounter a single problem, yet I have never installed ibus-qt. Can anyone clarify this statement from the wiki?
Hi, I am only using Fcitx in recent years but I think the need for IM Modules is the same for both fcitx and ibus, so I will try answer this with my experience. ibus-qt package provides IM Module shared objects (dynamic libraries) for qt applications. IM modules are small instrusive loadable libraries that are initiated by the application, and are talking to the IME server (ibus/fcitx/etc.) on a native IPC protocol (usually dbus these days). Without IM Modules (when not installed or non-qt/gtk applications), the application usually fallback to an old protocol called XIM. The existence of XIM is why you can type without ibus-qt installed. XIM is an old protocol which did not consider async communications by design, so it is inherently buggy. For simple IME engine and application scenario, modern day PC specs may hide XIM's buggy behavior. But as soon as you start to use really advanced IME engines (those developped with predictions and machine learning algorithms, large databases, often used by Chinese/Japanese users) in modern applications (with multiple threads handling rendering and inputs), characters you typed start to go all over the place, with a reasonable typing speed. High speed CPU/IO will not hide this because IME engines for East Asian languages are designed to fully utilize the CPU time between user input intervals, to provide better predictions with larger database. IM modules are designed to fix XIM's buggy behavior, and they can provide far more context information than XIM protocol. Also I believe wayland sessions cannot use XIM for native wayland applications, and wayland's native IM protocol is far from ready. So while you may still type in Qt applications with ibus without ibus-qt installed, I think this should still be a general recommandation for most users.