Linux輸入系統(tǒng)

Linux輸入系統(tǒng)經(jīng)過多年的發(fā)展砰粹,依舊還是一團(tuán)糟,和整個Linux社區(qū)一樣咙好,太過于分散和自由篡腌,沒有一個主心骨。

說道輸入系統(tǒng)勾效,社區(qū)目前這個樣子個人感覺主要是沒有持續(xù)性嘹悼,比如fcitx。當(dāng)然层宫,這也無可厚非绘迁,畢竟開源項目都是自愿的、沒有回報的卒密,尤其是輸入系統(tǒng)這類基礎(chǔ)平臺,上層系統(tǒng)雖然都依賴它棠赛,但是它既沒有得到資金上的回報哮奇,也沒有得到應(yīng)有的社區(qū)關(guān)注膛腐。尤其Linux平臺幾年一變化,輸入系統(tǒng)類的基礎(chǔ)庫創(chuàng)始人根本沒有精力持續(xù)跟進(jìn)鼎俘,例子還是fcitx哲身。還好fcitx迎來了新的開發(fā)者,讓fcitx步入新的4.x贸伐,煥發(fā)青春勘天。

錘子科技捐助OpenSSL是一個很好的開端,希望更多的商業(yè)公司可以捐助一下類似的基礎(chǔ)開源平臺捉邢。

1. 什么是輸入系統(tǒng)

引用Wikipedia給輸入系統(tǒng)來個定義:

  • 輸入系統(tǒng)脯丝,也就是俗稱的輸入法(Input Method,簡稱IM)用于計算機(jī)操作系統(tǒng)伏伐,將外部輸入設(shè)備信號轉(zhuǎn)換為系統(tǒng)可識別的字符宠进。主要外設(shè)是鍵盤,主要的應(yīng)用環(huán)境是通過標(biāo)準(zhǔn)鍵盤上有限的按鍵藐翎,輸入全球各種語言材蹬。
  • 輸入系統(tǒng)編輯器(Input Method Editor、Input Method Engine吝镣、Input Method Environment堤器、Input Method Platform,簡稱IME)才是真正的操作系統(tǒng)上的程序末贾,負(fù)責(zé)實現(xiàn)上述IM系統(tǒng)的功能闸溃。
  • IM最初為了 CJK (Chinese, Japanese and Korean,三個國家名稱縮寫)的計算機(jī)提供字符轉(zhuǎn)換輸入未舟,后來被標(biāo)準(zhǔn)化為全球語言提供輸入轉(zhuǎn)換支持圈暗。
  • IME這個名次最早由Microsoft Windows使用,后被用于各大操作系統(tǒng)裕膀。

2. Linux平臺IME現(xiàn)狀

從整個輸入系統(tǒng)的發(fā)展看员串,主要分為如下幾大類如入

  • XIM(X INPUT METHOD),最早的IME昼扛,基于I18N寸齐,因為本身存在缺陷(過度依賴X Window、每個輸入語言需要獨(dú)立的XIMServer)抄谐,已經(jīng)被淘汰渺鹦。因為其架構(gòu)對GTK+和QT都有比較的兼容性,少數(shù)IME依舊依賴XIM蛹含,比如Fcitx毅厚。已經(jīng)淘汰
  • IIIM(Internet/Intranet Input Method),解決了XIM的平臺依賴性缺陷浦箱,并引入UNICODE支持吸耿。該項目SUN公司OpenI18N項目構(gòu)建祠锣,與其他SUN項目一樣,沒有在社區(qū)內(nèi)有廣泛的使用咽安,已經(jīng)流產(chǎn)伴网。已經(jīng)淘汰
  • SCIM(Smart Common Input Method Platform),相對XIM和IIIM較成熟的輸入法解決方案妆棒,實現(xiàn)了模塊化的結(jié)構(gòu)澡腾、簡單的編程接口等,曾經(jīng)綁定到多個發(fā)行版中同步發(fā)型糕珊。但后期疏于維護(hù)动分,目前已經(jīng)淡出市場。已經(jīng)淘汰
  • IBus(Intelligent Input Bus)放接,當(dāng)前主流發(fā)行版默認(rèn)綁定的IM(主要是Gnome刺啦,2015年以及之前),一直在持續(xù)開發(fā)(截至2016/02)纠脾。與各大DesktopManager整合非常好玛瘸,程序兼容性也沒什么大問題。主流-程序兼容性和性能較差
  • 雖然IBus Github Commit還算頻繁(2016.02查看)苟蹈,但是Bug還是挺多的糊渊,前陣升級到Ubuntu 15.10就遇到了IBus與Firefox的沖突問題,無奈切換到Fcitx慧脱。2016.02.25 經(jīng)過系統(tǒng)和軟件升級又好了渺绒。
  • 顏值高,與Gnome和Unity集成度高菱鸥。
  • Fcitx(Free Chinese Input Toy for X)宗兼,很有歷史的中文輸入產(chǎn)品,與SCIM同時代推出氮采。經(jīng)過相當(dāng)長一段時間的開發(fā)后作者放棄了更新殷绍。但是該產(chǎn)品近期迎來了大的轉(zhuǎn)機(jī),F(xiàn)citx具有了新的代碼維護(hù)者鹊漠,將之前眾多的BUG一一修復(fù)主到,并規(guī)劃了清晰的開發(fā)路線Fcitx Todo-List。此舉將Fcitx又拉回了公眾視線躯概,預(yù)計未來將會有更好的發(fā)展登钥。主流-兼容性和擴(kuò)展性強(qiáng),未來Linux下主要輸入法框架
  • Ubuntu Kylin社區(qū)也曾經(jīng)組織討論考慮使用Fcitx代替IBus作為默認(rèn)的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兼容稍差度陆;但是該輸入法框架下的一些輸入法具有很多主題界面,有很多養(yǎng)眼的献幔,比如搜狗輸入法。

3. Linux IME推薦(Updated at 2017.03.25)

  • Ubuntu 15.xx 以后版本趾诗,以及同期其他發(fā)行版:Fcitx
  • Ubuntu 10-14.xx 版本蜡感,以及同期其他發(fā)行版:IBus
  • Ubuntu 9 和之前版本,以及同期其他發(fā)行版:SCIM

Fcitx我使用fcitx-table-wbpy模式恃泪,可以混合輸入拼音和五筆郑兴,很不錯。減少電腦用多了贝乎,提筆忘字的問題情连。
Fcitx在Gnome上最近出了一些小問題(見6.故障排查章節(jié)),發(fā)現(xiàn)fcitx在Gnome上運(yùn)行的穩(wěn)定性比Unity上差好多览效。

4. fcitx配置

默認(rèn)情況下却舀,安裝完成后配置Language Support使用fcitx輸入法即可正常工作,無需配置Region&Language锤灿、也無需刪除ibus輸入法:


Language Support界面
Region&Language配置

如遇到特殊情況挽拔,如Ubuntu 15.10升級到Ubuntu 16.04后,wps類的QT程序默認(rèn)無法調(diào)用fcitx但校,就需要修改一下系統(tǒng)的配置:

  • 方案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輸入法調(diào)用變量
    此方法測試后不好使术裸,應(yīng)該是配置文件搞錯了,但是測試了很多都不行~/.profile亭枷、.xinitrc袭艺、.xprofile等,保留如下的語句吧奶栖,未來再測試匹表。
export XIM="fcitx"
export XIM_PROGRAM="fcitx"
export XMODIFIERS="@im=fcitx"      #關(guān)鍵條目
export GTK_IM_MODULE="fcitx"
export QT_IM_MODULE="fcitx"

5. 輸入法切換工具

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

6. 故障排查

6.1 輸入法不顯示候選框

出現(xiàn)這個問題時,一般Gnome-Shell上的輸入法ICON應(yīng)該也一同消失了宣鄙,這個問題表象上是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 中文拼音輸入法小結(jié)
Linux操作系統(tǒng)下的三種輸入法架構(gòu)探析

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末设江,一起剝皮案震驚了整個濱河市锦茁,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌叉存,老刑警劉巖码俩,帶你破解...
    沈念sama閱讀 216,402評論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異歼捏,居然都是意外死亡稿存,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評論 3 392
  • 文/潘曉璐 我一進(jìn)店門瞳秽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來瓣履,“玉大人,你說我怎么就攤上這事练俐⌒溆” “怎么了?”我有些...
    開封第一講書人閱讀 162,483評論 0 353
  • 文/不壞的土叔 我叫張陵腺晾,是天一觀的道長燕锥。 經(jīng)常有香客問我,道長丘喻,這世上最難降的妖魔是什么脯宿? 我笑而不...
    開封第一講書人閱讀 58,165評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮泉粉,結(jié)果婚禮上连霉,老公的妹妹穿的比我還像新娘。我一直安慰自己嗡靡,他們只是感情好跺撼,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,176評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著讨彼,像睡著了一般歉井。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上哈误,一...
    開封第一講書人閱讀 51,146評論 1 297
  • 那天驼壶,我揣著相機(jī)與錄音套鹅,去河邊找鬼祟身。 笑死司澎,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的重荠。 我是一名探鬼主播箭阶,決...
    沈念sama閱讀 40,032評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了仇参?” 一聲冷哼從身側(cè)響起嘹叫,我...
    開封第一講書人閱讀 38,896評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎诈乒,沒想到半個月后罩扇,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,311評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡抓谴,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,536評論 2 332
  • 正文 我和宋清朗相戀三年暮蹂,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片癌压。...
    茶點(diǎn)故事閱讀 39,696評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖荆陆,靈堂內(nèi)的尸體忽然破棺而出滩届,到底是詐尸還是另有隱情,我是刑警寧澤被啼,帶...
    沈念sama閱讀 35,413評論 5 343
  • 正文 年R本政府宣布帜消,位于F島的核電站,受9級特大地震影響浓体,放射性物質(zhì)發(fā)生泄漏泡挺。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,008評論 3 325
  • 文/蒙蒙 一命浴、第九天 我趴在偏房一處隱蔽的房頂上張望娄猫。 院中可真熱鬧,春花似錦生闲、人聲如沸媳溺。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽悬蔽。三九已至,卻和暖如春捉兴,著一層夾襖步出監(jiān)牢的瞬間蝎困,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評論 1 269
  • 我被黑心中介騙來泰國打工倍啥, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留禾乘,地道東北人。 一個月前我還...
    沈念sama閱讀 47,698評論 2 368
  • 正文 我出身青樓逗栽,卻偏偏與公主長得像盖袭,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,592評論 2 353

推薦閱讀更多精彩內(nèi)容