iBus

本页使用了标题或全文手工转换,现处于澳门繁体模式
本頁使用了標題手工轉換,涉及首字符小寫
求聞百科,共筆求聞
IBus
Intelligent Input Bus (IBus)
Intelligent Input Bus (IBus)
開發者黃鵬
首次釋出2008年8月10日 (2008-08-10)
穩定版本
1.5.27
(2022年8月22日,​20個月前​(2022-08-22
程式語言C, Python
作業系統Unix-like
語言多語
類型輸入法
特許條款GNU較寬鬆公共許可證 v2
網站IBus 專案頁面
IBus
中文輸入法
發明人黃鵬
發明年份2008年8月10日
類別拼音

Intelligent Input Bus,簡稱IBus,是 Unix-like 作業系統下的多語輸入法平台。因為它採用了匯流排(Bus)式的架構,所以命名為Bus。

目標

IBus 的主要目標如下:

  • 易用、直覺的全功能輸入法用戶介面
  • 使用驗證方法加強安全性
  • 為輸入法開發者提供一個統一的介面函數庫
  • 符合來自不同地域,文化的使用者需求

開發動機

在東北亞開源軟件(OSS)討論區第3工作小組[1]提出的「輸入法引擎服務提供者介面規格」(Specification of IM engine Service Provider Interface)草案裏[2],能實現以Bus為核心的架構被建議採用。SCIM-1.4 的架構並不被看好,因為它是用C++開發的,因此常常會有C++應用二進位介面不符合的情況發生[3]

從那時起,一些人開始着手開發下一代的輸入法平台,像是蘇哲領導的IM-Bus,以及胡正的SCIM-2,可惜的是它們的開發進度仍然停滯不前。因此,時任紅帽(現任Google)的黃鵬開始用Python開發IBus以實現 IM-Bus提出的構想。IBus 並不完全實現東北亞OSS討論區所建議的函數,而是採用D-BusGlib來實做。儘管如此,IBus已經開始被OSS社群所接受,FreeBSD以及各大Linux發行版FedoraUbuntu已經將 IBus 納入其套件庫裏。在 Fedora 11 裏,IBus已經成為預設的多語輸入平台[4]

系統架構

IBus 是用 C 及 Python 開發的,如此可以避免 C++ ABI transition 問題。IBus主要透過下列三種服務(Service)來提供功能:

  • 輸入法引擎服務:為輸入法本身。
  • 組態服務:管理IBus以及輸入法的設置選項。
  • 控制面板服務:提供諸如語言條,候選字選單等用戶介面。

IBus 使用D-Bus作 ibus-daemon服務以及 IM客戶端之間的溝通。

ibus-daemon 透過接受服務登錄,以及發送D-Bus訊息來管理服務及IM客戶端。

IBus支援 XIM 協定及 Gtk IM 模組以及 Qt IM 模組。

特點

  • 輸入法引擎可以隨時載入與解除安裝
  • Systray 支援
  • XKB 支援
  • 組態選項更動可即時生效。
  • 提供 C 與 Python 的介面

缺陷

  • 由於讀取sqlite詞庫時有大量的IO操作,ibus-pinyin在系統高負載時輸入時有卡住的現象。
  • 當使用者在火狐瀏覽器文本框輸入文字並希望選中文字時,文字將會自動刪除[5]

參閱

參考資料

  • Linux進化特區:Ubuntu 12.04 從入門到精通

外部連結

  • IBus 首頁
  • IBus Git 原始碼
  • Comparison of Chinese Input Method Servers for Unix-like Operating Systems