IBus
IBusはC言語とPythonで開発されている。これはSCIM 1.4.14以降でのC++のABI変更に伴う問題を防ぐためである。
IBusの大部分の機能はサービスを通して提供される。"サービス"の例は以下の通りである。
Input method engine: 変換エンジン。IMEと省略することもできるが、MS IME(Input Method Editor)とは語源が異なる。
Configuration: 設定。IBusや変換エンジンのような"サービス"の設定を扱う。
Panel: パネル。言語バーや候補選択画面のユーザインタフェース。
IBusはibus-daemon、service、テキストエディタ、ウェブブラウザ、端末エミュレータのようなインプットメソッドクライアントと連携(通信)するためにD-Busを採用している。ibus-daemonマネージャーはサービスからの登録を受け取り、D-Busのメッセージを対応するサービスやインプットメソッドクライアントに送信することで、すべてのクライアント、サービス、クライアントを処理している。
IBusはXIMのプロトコル、GTK、Qtのインプットメソッドモジュールを実装している。