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?
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.
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? On 2018年05月10日 13時34分, Jiachen YANG via arch-general wrote:
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.
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-343... 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. On 2018年05月11日 12:12, Grady Martin via arch-general wrote:
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?
On 2018年05月10日 13時34分, Jiachen YANG via arch-general wrote:
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.
participants (2)
-
Grady Martin
-
Jiachen YANG