Intelligent Input Bus,简称IBus,是 Unix-like 操作系统下的多语输入法平台。因为它采用了总线(Bus)式的架构,所以命名为Bus。
在东北亚开源软件(OSS)论坛第3工作小组提出的《输入法引擎服务提供者界面规格》(Specification of IM engine Service Provider Interface)草案里,能实现以 Bus 为核心的架构被建议采用。SCIM-1.4 的架构并不被看好,因为它是用 C++ 开发的,因此常常会有C++应用二进制接口不符合的情况发生。
从那时起,一些人开始着手开发下一代的输入法平台,像是苏哲领导的IM-Bus,以及胡正的SCIM-2,可惜的是它们的开发进度仍然停滞不前。因此,时任红帽(现任谷歌)的黄鹏开始用 Python 开发 IBus 以实现 IM-Bus 提出的构想。IBus 并不完全实现东北亚 OSS 论坛所建议的函数,而是采用D-Bus及Glib来实做。尽管如此,IBus 已经开始被 OSS 社群所接受,FreeBSD 以及各大 Linux 发行版 如 Fedora、Ubuntu 已经将 IBus 纳入其包库里。在 Fedora 11 里,IBus 已经成为默认的多语输入平台。
IBus 是用 C 及 Python 开发的,如此可以避免 C++ ABI transition 问题。IBus 主要透过下列三种服务(Service)来提供功能:
- 输入法引擎服务:为输入法本身。
- 配置服务:管理IBus以及输入法的设置选项。
- 控制面板服务:提供诸如语言条,候选字菜单等用户界面。
IBus 使用 D-Bu