Linux输入系统

Linux输入系统经过多年的发展,依旧还是一团糟,和整个Linux社区一样,太过于分散和自由,没有一个主心骨。

说道输入系统,社区目前这个样子个人感觉主要是没有持续性,比如fcitx。当然,这也无可厚非,毕竟开源项目都是自愿的、没有回报的,尤其是输入系统这类基础平台,上层系统虽然都依赖它,但是它既没有得到资金上的回报,也没有得到应有的社区关注。尤其Linux平台几年一变化,输入系统类的基础库创始人根本没有精力持续跟进,例子还是fcitx。还好fcitx迎来了新的开发者,让fcitx步入新的4.x,焕发青春。

锤子科技捐助OpenSSL是一个很好的开端,希望更多的商业公司可以捐助一下类似的基础开源平台。

1. 什么是输入系统

引用Wikipedia给输入系统来个定义:

  • 输入系统,也就是俗称的输入法(Input Method,简称IM)用于计算机操作系统,将外部输入设备信号转换为系统可识别的字符。主要外设是键盘,主要的应用环境是通过标准键盘上有限的按键,输入全球各种语言。
  • 输入系统编辑器(Input Method Editor、Input Method Engine、Input Method Environment、Input Method Platform,简称IME)才是真正的操作系统上的程序,负责实现上述IM系统的功能。
  • IM最初为了 CJK (Chinese, Japanese and Korean,三个国家名称缩写)的计算机提供字符转换输入,后来被标准化为全球语言提供输入转换支持。
  • IME这个名次最早由Microsoft Windows使用,后被用于各大操作系统。

2. Linux平台IME现状

从整个输入系统的发展看,主要分为如下几大类如入

  • XIM(X INPUT METHOD),最早的IME,基于I18N,因为本身存在缺陷(过度依赖X Window、每个输入语言需要独立的XIMServer),已经被淘汰。因为其架构对GTK+和QT都有比较的兼容性,少数IME依旧依赖XIM,比如Fcitx。已经淘汰
  • IIIM(Internet/Intranet Input Method),解决了XIM的平台依赖性缺陷,并引入UNICODE支持。该项目SUN公司OpenI18N项目构建,与其他SUN项目一样,没有在社区内有广泛的使用,已经流产。已经淘汰
  • SCIM(Smart Common Input Method Platform),相对XIM和IIIM较成熟的输入法解决方案,实现了模块化的结构、简单的编程接口等,曾经绑定到多个发行版中同步发型。但后期疏于维护,目前已经淡出市场。已经淘汰
  • IBus(Intelligent Input Bus),当前主流发行版默认绑定的IM(主要是Gnome,2015年以及之前),一直在持续开发(截至2016/02)。与各大DesktopManager整合非常好,程序兼容性也没什么大问题。主流-程序兼容性和性能较差
  • 虽然IBus Github Commit还算频繁(2016.02查看),但是Bug还是挺多的,前阵升级到Ubuntu 15.10就遇到了IBus与Firefox的冲突问题,无奈切换到Fcitx。2016.02.25 经过系统和软件升级又好了。
  • 颜值高,与Gnome和Unity集成度高。
  • Fcitx(Free Chinese Input Toy for X),很有历史的中文输入产品,与SCIM同时代推出。经过相当长一段时间的开发后作者放弃了更新。但是该产品近期迎来了大的转机,Fcitx具有了新的代码维护者,将之前众多的BUG一一修复,并规划了清晰的开发路线Fcitx Todo-List。此举将Fcitx又拉回了公众视线,预计未来将会有更好的发展。主流-兼容性和扩展性强,未来Linux下主要输入法框架
  • Ubuntu Kylin社区也曾经组织讨论考虑使用Fcitx代替IBus作为默认的IME。(参考URL:Using ibus or fcitx as default in UbuntuKylin)原因有如下:
  1. it is the first Chinese input method in open source community since 2002, and it has lots of fans in China, especially guys using Wubi method.
2. it provides more efficient and intelligent input experience than ibus. 
3. it provides skin options and more convenient configuration tool. 
4. it provides good support to cloud-pinyin. 
5. Compatibility between Fcitx and Unity is improving gradually. E.g., the latest update of NUX makes it possible to input Chinese words in Dash. 
6. Fans are working to make it better, such as GTK+ show, Indicator show.
  • Fcitx Github Commit 更新的频率也不高了(2016.02查看),估计开始懈怠了,希望能坚持住。
  • Fcitx界面稍微难堪一些,与Gnome和Unity兼容稍差;但是该输入法框架下的一些输入法具有很多主题界面,有很多养眼的,比如搜狗输入法。

3. Linux IME推荐(Updated at 2017.03.25)

  • Ubuntu 15.xx 以后版本,以及同期其他发行版:Fcitx
  • Ubuntu 10-14.xx 版本,以及同期其他发行版:IBus
  • Ubuntu 9 和之前版本,以及同期其他发行版:SCIM

Fcitx我使用fcitx-table-wbpy模式,可以混合输入拼音和五笔,很不错。减少电脑用多了,提笔忘字的问题。
Fcitx在Gnome上最近出了一些小问题(见6.故障排查章节),发现fcitx在Gnome上运行的稳定性比Unity上差好多。

4. fcitx配置

默认情况下,安装完成后配置Language Support使用fcitx输入法即可正常工作,无需配置Region&Language、也无需删除ibus输入法:


Language Support界面
Region&Language配置

如遇到特殊情况,如Ubuntu 15.10升级到Ubuntu 16.04后,wps类的QT程序默认无法调用fcitx,就需要修改一下系统的配置:

  • 方案1,删除ibus(靠谱)
ray@ray-ThinkPad-X250:~$ sudo apt remove ibus
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  liblua5.1-0 libpinyin7
Use 'sudo apt autoremove' to remove them.
The following packages will be REMOVED:
  ibus ibus-libpinyin ibus-table ibus-table-wubi ubuntu-desktop unity-control-center unity-control-center-signon
0 upgraded, 0 newly installed, 7 to remove and 0 not upgraded.
After this operation, 20.9 MB disk space will be freed.
Do you want to continue? [Y/n] 
  • 方案2,增加配置文件(~/.profile),声明 QT输入法调用变量
    此方法测试后不好使,应该是配置文件搞错了,但是测试了很多都不行~/.profile、.xinitrc、.xprofile等,保留如下的语句吧,未来再测试。
export XIM="fcitx"
export XIM_PROGRAM="fcitx"
export XMODIFIERS="@im=fcitx"      #关键条目
export GTK_IM_MODULE="fcitx"
export QT_IM_MODULE="fcitx"

5. 输入法切换工具

$ ./im-config   #目前没感觉有什么用的程序
im-config界面

6. 故障排查

6.1 输入法不显示候选框

出现这个问题时,一般Gnome-Shell上的输入法ICON应该也一同消失了,这个问题表象上是fcitx-ui-qimpanel的问题,可以偿试重新安装这个包。
我这遇到这个问题时,提示了sougou-pinyin的故障,删除掉sogou拼音即可。(我使用fcitx-table-wbpy,不直接用pinyin

参考URL

pinyinjoe 拼音舟 Ubuntu Chinese Setup 12.04 - 15.10
Wikipeadia Input_method
Arch Linux Wiki : SCIM
Arch Linux Wiki : IBUS
Arch Linux Wiki : Fcitx
Linux input method framework brief summary
Ubuntu 中文拼音输入法小结
Linux操作系统下的三种输入法架构探析

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,602评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,442评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,878评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,306评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,330评论 5 373
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,071评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,382评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,006评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,512评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,965评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,094评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,732评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,283评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,286评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,512评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,536评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,828评论 2 345

推荐阅读更多精彩内容