IBus

IBus（アイバス、"Intelligent Input Bus"）はUnix系オペレーティングシステム (OS) におけるインプットメソッドフレームワークである。IBusのBusはバスのような構造を持つところから来ている。
目標.
IBusの主要な目標は以下のようなものである。
動機.
Northeast Asia OSS Forumの第3ワークグループによる"Specification of IM engine Service Provider Interface"のドラフトは、D-Busのようなバス (コンピュータ)の実装を伴うバス中心のインプットメソッド構造を推奨した。その仕様書によれば、SCIM-1.4はC++で開発されている点で開発にあまりに適さないと考えられる。それはアプリケーションバイナリインタフェース (ABI) の変遷による問題でよく引き起こされる。
そのため、IM-BUSやSCIM-2のような後継のプロジェクトがスタートした。しかしどちらのプロジェクトも休止してしまった。そのためレッドハットのHuang PengはIM-Busの考え方をCJK OSSフォーラムが推奨する機能の実装の代わりに、PythonやD-BusそしてgLibを用いて提供するためにIBusプロジェクトを創設した。それにも関わらず、IBusはすでにコミュニティの承認を得ており、FedoraやUbuntuのようなLinuxディストリビューションユーザーが追加しなくてもIBusが標準のレポジトリに含まれている。IBusはFedora 11から新しい標準インプットメソッドになり、Ubuntuでは9.10でSCIMから置き換えられた。
構造.
IBusはC言語とPythonで開発されている。これはSCIM 1.4.14以降でのC++のABI変更に伴う問題を防ぐためである。
IBusの大部分の機能はサービスを通して提供される。"サービス"の例は以下の通りである。
IBusはibus-daemon、service、テキストエディタ、ウェブブラウザ、端末エミュレータのようなインプットメソッドクライアントと連携（通信）するためにD-Busを採用している。ibus-daemonマネージャーはサービスからの登録を受け取り、D-Busのメッセージを対応するサービスやインプットメソッドクライアントに送信することで、すべてのクライアント、サービス、クライアントを処理している。
IBusはXIMのプロトコル、GTK、Qtのインプットメソッドモジュールを実装している。
対応するインプットメソッドプラグインと変換エンジン.
ibus-m17n.
ibus-m17nはm17nデータベースよりインプットメソッドとそれに対応するアイコンを使う変換エンジン(IME)。ibus-tableが純粋なテーブル（表、辞書）をサポートするのに対し、m17nのインプットメソッドは入力モードに対応しており、そのラベルはIBus panel（言語バー）に表示される。m17n入力方法は周辺のテキストにも対応しているので、タイ語のような言語や純粋なピンイン入力が必要なインプットメソッドなどがibus-m17nを利用してサポートされている。
ibus-table.
ibus-tableは用意されたテーブルを読み込むだけの単語を選択するための複雑なロジックを必要としないインプットメソッドで、Yu Wei Yuによって開発された 倉頡輸入法（Caangjie）や五筆字型輸入法（Wubi）のような中国語向けの多くのインプットメソッドはこの方法でサポートされている。
公式にリリースされているインプットメソッドテーブル: