Intelligent Input Bus，簡稱 IBus，是 Unixlike 作業系統下的多語輸入法平臺。因為它採用了匯流排（Bus）式的架構，所以命名為 Bus。 目標 IBus 的主要目標如下： 易用、直覺的全功能輸入法使用者介面 使用驗證方法加強安全性 為輸入法開發者提供一個統一的介面及函式庫 符合來自不同地域，文化的使用者需求 開發動機 在東北亞開源軟體（OSS）論壇第 3 工作小組 Northeast Asia Open Source Software Forum 提出的「輸入法引擎服務提供者介面規格」（Specification of IM engine Service Provider Interface）草案裡 Specification of IM engine Service Provider Interface ，能實現以 Bus 為核心的架構被建議採用。SCIM14 的架構並不被看好，因為它是用 C 開發的，因此常常會有 C 應用二進位介面不符合的情況發生 SCIM ABI transition in sid 。 從那時起，一些人開始著手開發下一代的輸入法平臺，像是蘇哲領導的 IMBus，以及胡正的 SCIM2，可惜的是它們的開發進度仍然停滯不前。因此，時任紅帽（現任谷歌）的黃鵬開始用 Python 開發 IBus 以實現 IMBus 提出的構想。IBus 並不完全實現東北亞 OSS 論壇所建議的函式，而是採用 DBus 及 Glib 來實做。儘管如此，IBus 已經開始被 OSS 社群所接受，FreeBSD 以及各大 Linux 發行版 如 Fedora、Ubuntu 已經將 IBus 納入其套件庫裡。在 Fedora 11 裡，IBus 已經成為預設的多語輸入平臺 Fedora 11 Feature List 。 系統架構 IBus 是用 C 及 Python 開發的，如此可以避免 C ABI transition 問題。IBus 主要透過下列三種服務 Service 來提供功能： 輸入法引擎服務：為輸入法本身。 配置服務：管理 IBus 以及輸入法的設定選項。 控制面板服務：提供諸如語言條，候選字選單等使用者介面。 IBus 使用 DBus 作 ibusdaemon 服務，以及 IM 客戶端（像是 konsole gedit firefox 之間的溝通。 ibusdaemon 透過接受服務登入，以及傳送 DBus 訊息來管理服務及 IM 客戶端。 IBus 支援 XIM 協議及 Gtk IM 模組以及 Qt IM 模組。 特點 輸入法引擎可以隨時載入與解除安裝 Systray 支援 支援 配置選項更動可即時生效。 提供 C 與 Python 的介面 現有輸入法引擎列表 ibusanthy 日文輸入法。 ibusarray 行列輸入法 ibusbopomofo 使用注音符號的拼音輸入法，基於 ibuspinyin 引擎開發，但輸入方式與一般標準智慧形注音輸入法（如新酷音輸入法或微軟新注音）不同。 ibuschewing 新酷音輸入法，智慧形注音輸入法。 ibushangul 韓文輸入法。 ibuskkc：日文假名漢字轉換輸入法。 ibusm17n 使用 m17ndb 的多語輸入法，細節請參閱 ibusm17n。 ibuspinyin 拼音輸入法，為 IBus 主要開發者所開發。 ibuslibpinyin 是 Red Hat 工程師主導、基於 ngram 語言模型的整合性泛拼音輸入法引擎。 ibuslibzhuyin 與 ibuslibpinyin 系出同源，支援注音符號輸入，名為「新注音」New Zhuyin 輸入法，是智慧形的注音輸入法。 ibustable 碼表輸入引擎，細節請參閱 ibustable。 ibusgooglepinyin Google 拼音輸入法的 ibus 版本（這個並不是官方的 Google 輸入法，而是由愛好者從 Android 專案上遷移過來） ibusm17n ibusm17n 利用 m17n 架構下的輸入法及相對應的圖示來達成多語輸入。由於 m17n 架構支援上下文 surrounding text 以及輸入狀態 state。像是泰文輸入法或是其他需要狀態的輸入法就由 ibusm17n 來支援。輸入法狀態會顯示在 IBus panel 語言條 上。 ibustable ibustable 為餘鈺煒所開發，針對查表型輸入法所設計的碼表輸入引擎。許多輸入法，不需要像是 ibuschewing 或是 ibuspinyin 之類的複雜選字演演算法，只需要一個對照表即可運作。許多字形輸入法像是倉頡輸入法及五筆輸入法都由 ibustable 所支援。 官方釋出的碼表 latex 使用 latex 語法來輸入特殊符號，ibustable 自帶 compose 使用 compose letter 及 diacritical mark 來輸入特殊字元，ibustable 自帶。 Array30 行列 30 輸入法。 Cangjie 倉頡及速成、三代及五代。 Erbi 二筆輸入法。 Wubi 五筆輸入法。 Yong 永碼輸入法。 ZhengMa 鄭碼輸入法。 1 可選字由預設的 1 頁 6 個換成主流的 1 頁 9 個 尋找 _page_size 6 修改為 _page_size 9 2 空白鍵跳下一頁選字 尋找 elif keycode keysymsspace 將下面的 o_py self_editor_py_mode sp_res self_editorspace return KeyProcessResultwhethercommitcommitstring if sp_res 0 selfcommit_string sp_res 1 selfadd_string_len sp_res 1 selfdbcheck_phrase sp_res 1 sp_res 2 else if sp_res 1 u selfcommit_string cond_letter_translate u if o_py self_editor_py_mode self_refresh_properties self_update_ui return True 換成 res self_editorpage_down self_update_lookup_table return res 3backspace 鍵 跳上一頁選字 尋找 elif keycode keysymsBackSpace 將下面的 res self_editorbackspace self_update_ui 取代為 res self_editorpage_up self_update_lookup_table 4 單一個碼空白鍵自動選字，數字鍵區選字 尋找 if keymask modifierRELEASE_MASK return True if self_editoris_empty 於 return True 與 if self_editoris_empty 之間 新增 if keycode65457 and keycode65465 keycode65408 elif keycode keysymsspace and len self_editor_chars 01 keycodekeysyms_1 缺陷 由於讀取 SQLite 詞庫時有大量的 IO 操作，ibuspinyin 在系統高負載時輸入時有卡住的現象。 當用戶在火狐瀏覽器文字框輸入文字並希望選中文字時，文字將會自動刪除。 參閱 輸入法 Unix 輸入法列表 SCIM Fcitx 參考資料 Linux 進化特區：Ubuntu 1204 從入門到精通 外部連結 IBus 首頁 IBus Git 原始碼 Comparison of Chinese Input Method Servers for Unixlike Operating Systems Category 輸入法 Category 中文輸入法平臺