iBus

本页使用了标题或全文手工转换,现处于中国大陆简体模式
本页使用了标题手工转换,涉及首字符小写
求闻百科,共笔求闻
IBus
Intelligent Input Bus (IBus)
Intelligent Input Bus (IBus)
开发者黄鹏
首次发布2008年8月10日 (2008-08-10)
稳定版本
1.5.27
(2022年8月22日,​19个月前​(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,可惜的是它们的开发进度仍然停滞不前。因此,时任红帽(现任谷歌)的黄鹏开始用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