Intelligent Input Bus (IBus) | |
开发者 | 黄鹏 |
---|---|
首次发布 | 2008年8月10日 |
稳定版本 | 1.5.27 (2022年8月22日 ) |
编程语言 | C, Python |
操作系统 | Unix-like |
语言 | 多语 |
类型 | 输入法 |
许可协议 | GNU宽通用公共许可证 v2 |
网站 | 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,可惜的是它们的开发进度仍然停滞不前。因此,时任红帽(现任谷歌)的黄鹏开始用Python开发IBus以实现 IM-Bus提出的构想。IBus 并不完全实现东北亚OSS论坛所建议的函数,而是采用D-Bus及Glib来实做。尽管如此,IBus已经开始被OSS社群所接受,FreeBSD以及各大Linux发行版 如Fedora、Ubuntu已经将 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 模块。
特点
缺陷
参阅
参考资料
- Linux进化特区:Ubuntu 12.04 从入门到精通
外部链接
- IBus 主页
- IBus Git 源码
- Comparison of Chinese Input Method Servers for Unix-like Operating Systems