本页使用了标题或全文手工转换

iBus

维基百科,自由的百科全书
跳转至: 导航搜索
IBus
IBus logo
ibus-pinyin screenshot
Intelligent Input Bus (IBus)
开发者 黄鹏
初始版本 2008年8月10日 (2008-08-10)
稳定版本 1.5.16(2017年5月15日 (2017-05-15)
开发状态 支持中
编程语言 C, Python
操作系统 Unix-like
语言 多语
类型 输入法
许可协议 GNU宽通用公共许可证 v2
网站 IBus 项目页面
源代码库 github.com/ibus/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,可惜的是它们的开发进度仍然停滞不前。因此,时任红帽(现任谷歌)的黄鹏开始用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客户端(像是konsole, gedit, firefox)之间的沟通。 ibus-daemon 通过接受服务登录,以及发送D-Bus消息来管理服务及IM客户端。

IBus支持 XIM 协议及 Gtk IM 模块以及 Qt IM 模块。

特点[编辑]

  • 输入法引擎可以随时加载与卸载
  • Systray 支持
  • XKB 支持
  • 配置选项更动可即时生效。
  • 提供 C 与 Python 的接口

现有输入法引擎列表[编辑]

  • ibus-anthy: 日文输入法
  • ibus-array: 行列输入法
  • ibus-bopomofo: 使用注音符号的拼音输入法,基于ibus-pinyin引擎开发[5],但输入方式与一般标准智能形注音输入法(如新酷音输入法或微软新注音)不同。
  • ibus-chewing: 新酷音输入法,智能形注音输入法
  • ibus-hangul: 韩文输入法。
  • ibus-kkc:日文假名汉字转换输入法。
  • ibus-m17n: 使用m17n-db的多语输入法,细节请参阅 #ibus-m17n
  • ibus-pinyin: 拼音输入法,为IBus主要开发者所开发。
  • ibus-libpinyin: 是 Red Hat 工程师主导、基于 n-gram 语言模型的集成性泛拼音输入法引擎。
  • ibus-libzhuyin: 与 ibus-libpinyin 系出同源,支持注音符号输入,名为“新注音”(New Zhuyin) 输入法,是智能形的注音输入法
  • ibus-table: 码表输入引擎,细节请参阅 #ibus-table
  • ibus-googlepinyin: Google拼音输入法的ibus版本(这个并不是官方的Google输入法,而是由爱好者从Android项目上迁移过来)

ibus-m17n[编辑]

ibus-m17n 利用m17n 架构下的输入法及相对应的图标来达成多语输入。由于m17n架构支持上下文(surrounding tex)t以及输入状态(state)。像是泰文输入法或是其他需要状态的输入法就由ibus-m17n来支持。输入法状态会显示在 IBus panel (语言条)上。

ibus-table[编辑]

ibus-table 为余钰炜所开发,针对查表型输入法所设计的码表输入引擎。许多输入法,不需要像是 ibus-chewing 或是 ibus-pinyin 之类的复杂选字算法,只需要一个对照表即可运作[6]。许多字形输入法像是仓颉输入法及五笔输入法都由 ibus-table 所支持。

在Ubuntu 12.04.1 LTS使用IBus 1.4.1(仓颉第五代)及其首选项

官方发布的码表[7]:

缺陷[编辑]

  • 由于读取sqlite词库时有大量的IO操作,ibus-pinyin在系统高负载时输入时有卡住的现象。
  • 当用户在火狐浏览器文本框输入文字并希望选中文字时,文字将会自动删除[8]

参阅[编辑]

参考资料[编辑]