Discussion:
[arch-general] IBus Qt
Jiachen YANG via arch-general
2018-05-11 04:42:45 UTC
Permalink
Sure, please add the information on archwiki.

BTW I get most this information from this comment by csslayer:
https://github.com/flatpak/freedesktop-sdk-images/issues/43#issuecomment-343030611

Csslayer is the main developper of fcitx, and [his
blog](https://www.csslayer.info/wordpress/tag/fcitx/) also has many
articles on IME design. You can refer to him as well, because his words
may be more technically correct from his experience developping fcitx
and related softwares.
I could not have asked for a better explanation.  Thank you very much.
Some of this should be mentioned on the wiki page.  Would you like to
add it?  Would it be all right if I added the information, referencing
this mailing list post?
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.
Loading...