ibus

义项:输入法框架
ibus

ibus 是 Intelligent Input Bus 的简称,即「智能输入总线」,是一种在类 Unix 操作系统(含 GNU/Linux 与 FreeBSD)上提供多语言文字输入的输入法框架[1]。它本身并不实现具体的输入法,而是通过 D-Bus 把输入法引擎、配置服务与候选界面组织成彼此独立的进程,因此得名「总线」[2]。它取代 SCIM 成为多个主流 Linux 发行版的默认输入法平台,是中文、日文、韩文等非拉丁文字用户在 Linux 桌面输入文字的基础组件之一[3]。

目录
  1. 定义
  2. 原理
  3. 发展历程
  4. 应用
  5. 局限
  6. 参见

定义

ibus 全称 Intelligent Input Bus,是一个面向类 Unix 系统的多语言输入法框架,可运行于 GNU/Linux 与 FreeBSD 等操作系统[1]。它的定位是「框架」而不是某一个输入法:具体使用拼音、五笔、假名还是韩文,取决于安装在框架之上的引擎[4]。

之所以用「Bus」命名,是因为其架构以一条消息总线为核心,各组成部分围绕总线注册与通信;这一设计思路来自东北亚开源软件论坛第 3 工作小组关于输入法引擎服务提供者接口的草案建议[2]。框架本身以 C 与 Python 编写,并采用 GNU LGPL 2 及以后版本发布[1]。

原理

ibus 把输入过程拆成三类服务:输入法引擎负责实际的编码转换,配置服务保存框架与各引擎的选项,控制面板服务则绘制语言条、候选词菜单等界面[1]。三者都是独立进程,通过 D-Bus 与常驻的 ibus-daemon 交换消息,由守护进程接收服务注册并向对应的引擎或客户端转发事件[2]。

对上层应用而言,ibus 提供多种接入方式:实现 XIM 协议,并提供 GTK 与 Qt 的输入法模块,因此编辑器、终端和浏览器可按各自工具包接入[2]。因为引擎与客户端分处不同进程,任何一个引擎出错只会终止自身,不会牵连整个框架;引擎也可以按需加载和卸载,配置改动即时生效[3]。


graph LR

A[GTK/Qt 应用] -->|XIM / IM 模块| B[ibus-daemon]

B --> C[输入法引擎]

B --> D[配置服务]

B --> E[面板服务]

发展历程

ibus 的出现与 SCIM 的设计缺陷有关。东北亚开源软件论坛的草案认为 SCIM 1.4 以 C++ 开发,容易遭遇应用二进制接口变动的问题,因而建议采用以总线为核心的新架构[1]。此前苏哲主持的 IM-Bus 与胡正主持的 SCIM-2 先后启动,但开发均陷入停滞;时任红帽工程师的黄鹏随后以 Python、D-Bus 与 GLib 实现 ibus,用来验证 IM-Bus 的构想[2]。

项目于 2008 年 8 月发布首个版本[1]。此后 FreeBSD 与多个 Linux 发行版陆续把 ibus 收入软件仓库,Fedora 10 开始提供该框架,Fedora 11 将其设为默认输入法平台,Ubuntu 9.10 也以它替换了 SCIM[1][3]。

1.5 版本是另一次较大调整,框架与 GNOME 桌面的集成方式被重构,语言面板、半角/全角键启动等旧功能被移除,键盘布局与转换引擎统一归入「输入源」概念[5]。随后版本持续迭代,2020 年发布 1.5.22,2023 年发布 1.5.29,2026 年 4 月发布 1.5.34[1]。

应用

ibus 最常见的用途是在 Linux 桌面上输入中日韩文字。围绕框架存在大量引擎,例如处理汉语拼音的 ibus-libpinyin、处理注音的 ibus-chewing 与 ibus-libzhuyin、处理日文的 ibus-anthy 与 ibus-kkc、处理韩文的 ibus-hangul[2]。码表类输入法由 ibus-table 负责,五笔、仓颉等按字根表取字的方案都可以在它之上实现[2]。

对不属于中日韩范围的语言,ibus-m17n 借助 m17n 数据库提供泰文、印地文、阿拉伯文等大量语言的输入方案,并可在面板上显示输入状态[6]。由于 Debian、Red Hat 系发行版将其列为默认的非英文输入平台,用户通常无需额外选型即可使用[7]。

发行版生态中 ibus 与其他框架并存。银河麒麟、统信 UOS 等系统默认采用 Fcitx 框架,部分其他发行版则默认使用 ibus,用户也可通过输入法配置工具在两者之间切换[8]。

局限

ibus 的跨应用表现依赖各工具包的输入法模块,因此能否正常工作常取决于环境变量与桌面环境配置。在 Wayland 会话下,部分环境仍导出 GTK 与 Qt 的输入法模块变量,使应用继续走旧的模块协议而非 Wayland 原生文本输入协议,导致候选窗口在个别合成器上一闪而过、或无法定位到光标附近[9]。

应用侧的兼容性同样不齐。Chromium 与基于 Electron 的程序需要专门参数才能启用 Wayland 输入法支持,GTK2、GTK3 程序仍须依赖输入法模块变量,强制以 X11 后端运行的程序也无法改用原生协议。此外,合成器协议的实现差异还会影响细节行为,例如 Firefox 在原生 Wayland 模式下曾出现候选窗口不跟随光标的情况[10]。

框架本身也不实现具体输入法,若系统只安装了 ibus 而未安装任何引擎,则无法输入非拉丁文字;仅在安装了真实引擎时,输入内容才能被送入应用[11]。1.5 版本移除部分旧功能后,习惯旧界面的用户需要改用新的输入源管理方式,相关能力在部分桌面环境中由其他组件补足[5]。

参见

  • SCIM —— ibus 的前代框架,ibus 在设计上针对其短板提出改进。

  • Fcitx —— Linux 上另一款常用输入法框架,常与 ibus 互为替代。

  • D-Bus —— ibus 各组件之间通信所依赖的消息总线。

  • XIM —— ibus 为兼容旧式应用而实现的输入法协议。

  • GNOME —— 与 ibus 深度集成的主要桌面环境之一。

  • Wayland —— 新一代显示服务器协议,其原生文本输入协议是 ibus 当前的适配方向。

参考资料

  1. Intelligent Input Bus [引用日期2026-10-29]
  2. iBus [引用日期2026-10-29]
  3. Features/IBus [引用日期2026-10-29]
  4. 软件包:ibus(1.5.35~rc1-1 以及其他的) [引用日期2026-10-29]
  5. ubuntu.com 上的网页 [引用日期2026-10-29]
  6. IBus [引用日期2026-10-29]
  7. ibus [引用日期2026-10-29]
  8. 社区首页 >专栏 >浅析Linux系统的输入法平台 [引用日期2026-10-29]
  9. Bug 1246420 [引用日期2026-10-29]
  10. show_bug [引用日期2026-10-29]
  11. github.com 上的网页 [引用日期2026-10-29]
词条评价
词条统计

浏览次数:2 次

阅读量:0 次 · 阅读完成量:0 次

最近更新:2026-10-28T18:23:43Z

历史版本

本条目引用的词条
D-Bus SCIM GNOME Fcitx XIM Wayland