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のような後継プロジェクトが開始されたが、両プロジェクトともに中断された。そのため、レッドハットのホアン・ペンは、CJK OSSフォーラムによって推奨された機能を実装するのではなく、Python、D-BusおよびGLibを用いてIM-BUSのアイデアを実証するためにIBusプロジェクトを設立した。それにもかかわらず、IBusはすでにコミュニティによって受け入れられており、FedoraやUbuntuなど多くのLinuxディストリビューションにおいて、IBusはパッケージリポジトリに含まれている。IBusはFedora 11で新たにデフォルトのインプットメソッドフレームワークとなり、Ubuntu 9.10ではSCIMに代わって採用された。

アーキテクチャ
IBusはC言語とPythonで開発されている。これにより、SCIMバージョン1.4.14未満で発生するC++のABI移行問題を回避しているSCIM ABI transition reference。

IBusは、その機能の大部分をサービスを通じて提供している。サービスには以下の3種類がある。
 インプットメソッドエンジン（IME）：実際の入力メソッド。
 設定：IBusおよびIMEなどの他のサービスの設定を管理する。
 パネル：言語バーや候補選択テーブルなどのユーザインタフェース。

IBusはD-Busを使用して、ibus-daemon、各サービス、ターミナルエミュレータやエディタ、ウェブブラウザなどのIMクライアント間で通信を行っている。ibus-daemonは、サービスからの登録を受け取り、対応するサービスやIMクライアントにD-Busメッセージを送信することで、すべてのクライアントとサービスを管理している。

IBusはXIMのプロトコル、GTK、Qtのインプットメソッドモジュールを実装している。

特徴
 要求に応じた変換エンジンのロード、アンロード  
 タスクトレイのサポート  
 との相互運用性  
 設定変更の即時適用  
 CおよびPythonバインディングの提供

利用可能な入力メソッドプラグインおよびエンジン
日本語
 ibus-skk：SKKエンジン
 ibus-anthy：Anthyのプラグイン
 ibus-mozc：Googleによって開発されたmozcのプラグイン
他言語
 ibus-avro：Avro Keyboardに基づいたベンガル語の表音キーボードレイアウト
 ibus-cangjie：倉頡入力法のエンジン
 ibus-chewing：注音符号に対応するインテリジェントな中国語音声IME。libChewingに基づいている。
 ibus-hangul：韓国語IME
 ibus-libpinyin：拼音対応の新しい中国語IME。 ホアン・ペンとペン・ウーによって設計された。
 ibus-libthai：libthaiに基づいたタイ語IME
 ibus-libzhuyin：注音符号対応のエンジン（ibus-chewingの代替）
 ibus-m17n：m17n-dbの入力メソッドを使用し、多言語入力を可能にするIME。詳細は#ibus-m17nを参照。
 ibus-pinyin：拼音対応のインテリジェントな中国語音声IME。IBusの主要開発者であるホアン・ペンによって設計され、英語のスペルチェックなどの高度な機能を備えている。廃止され、上記のibus-libpinyinに置き換えられた。
 ibus-table：テーブルベースの入力メソッドを利用可能にするIME。詳細は#ibus-tableを参照。
 ibus-unikey：ベトナム語文字入力用のIME

ibus-m17n
ibus-m17nは、多言語化データベース（m17n）に含まれる入力メソッドおよび対応するアイコンを使用するIMEである。単純なテーブルをサポートするibus-tableとは異なり、m17n入力メソッドは状態もサポートし、そのラベルはIBusパネル（言語バー）に表示される。m17n入力メソッドは周囲のテキストもサポートするため、タイ語やプレーンな注音符号のようなこの機能を必要とする言語および入力メソッドもibus-m17nでサポートされる。また、声調付きの拼音もサポートされる。

ibus-table
ibus-tableはユー・ウェイ・ユーによって開発されたIMEであり、語の選択に複雑なロジックを必要としない入力メソッドのテーブルを読み込む。この方式では倉頡輸入法や五筆字型入力方法など、構造ベースの中国語入力メソッドが多数サポートされている。

公式にリリースされているIMEテーブル：
 latex：LaTeX構文を用いて特殊文字を入力。ibus-tableパッケージに含まれる。
 compose：合成文字およびダイアクリティカルマークにより特殊文字を入力。ibus-tableパッケージに含まれる。
 Array30：Array30中国語IMEテーブル
 Cangjie：倉頡3および5中国語IMEテーブル
 Erbi：エルビ中国語IMEテーブル
 Wubi：五筆中国語IMEテーブル
 Yong：ヨンマ中国語IMEテーブル
 ZhengMa：鄭碼中国語IMEテーブル

関連項目

 インプットメソッド
 fcitx
 Smart Common Input Method (SCIM)
 uim

脚注

 外部リンク 

GitHubのプロジェクトページ
FedoraProjectのページ

Category:日本語入力ソフト
Category:インプットメソッド
Category:オープンソースソフトウェア
Category:Pythonでプログラムされた自由ソフトウェア
Category:Cでプログラムされた自由ソフトウェア