使用linux最沮喪的事情莫過(guò)于中文輸入法切換不出來(lái),甚至有人錯(cuò)誤地認(rèn)為,要使用中文輸入法,必須把“區(qū)域和語(yǔ)言”(Region Language)設(shè)置為中國(guó)-中文。輸入法只是一個(gè)軟件,和區(qū)域設(shè)置沒(méi)有什么必然聯(lián)系。如果你在初始化安裝系統(tǒng)的時(shí)候,選擇了中文,倒是會(huì)幫你把中文輸入法打包安裝好。
所以和我一樣使用en-us區(qū)域設(shè)置的朋友,如果輸入法出了問(wèn)題,怎么排查解決呢?
首選你必須安裝一個(gè)中文輸入法,推薦小企鵝
sudo yum install fcitx-pinyin
但是,安裝完后,發(fā)現(xiàn)按 ctrl+space 卻沒(méi)有召喚出輸入法。需要在終端中執(zhí)行
選中當(dāng)前輸入法為FCITX,并進(jìn)行基本的設(shè)置。 大部分情況下,至此你就可以正常地使用一個(gè)中文輸入法了。
在早期的一些教程中,會(huì)強(qiáng)調(diào)在X環(huán)境變量(例如~/.xprofile,~/.xinitrc,~/.xinputrc )中聲明環(huán)境變量來(lái)保證輸入法正常啟動(dòng)。實(shí)際上沒(méi)有必要。
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=”@im=fcitx”
現(xiàn)在的發(fā)行版喜歡用軟鏈接來(lái)管理設(shè)定,系統(tǒng)讀取的位置不變(認(rèn)準(zhǔn)軟鏈接),用戶設(shè)定時(shí)改變軟鏈接的實(shí)際指向,這是一個(gè)漂亮的解耦做法。如果你開(kāi)發(fā)過(guò)跨平臺(tái)跨環(huán)境的應(yīng)用,就知道兼容適配有多麻煩,一個(gè)簡(jiǎn)單易行的方案有多寶貴。
來(lái)看看Fedora20里面是怎么做的。
所以當(dāng)你用標(biāo)準(zhǔn)姿勢(shì)安裝并設(shè)定過(guò)輸入法,最后是可以通過(guò)軟鏈接指向正確關(guān)聯(lián)。 反正 /etc/X11/xinit/xinitrc.d/50-xinput.sh 啟動(dòng)腳本認(rèn)準(zhǔn)了/etc/X11/xinit/xinputrc
如果你不順利,在運(yùn)行im-chooser的時(shí)候出現(xiàn)了錯(cuò)誤。 內(nèi)容大概是
GDBus.Error:org.gtk.GDBus.UnmappedGError.Quark._imsettings_2derror_2dquark.Code5: Current desktop isn’t targeted by IMSettings.
不要著急,Linux的易用性雖然還是有差距,但是一直保持有詳細(xì)錯(cuò)誤日志的優(yōu)良傳統(tǒng)。 在 ~/.cache/imsettings/log 看到關(guān)鍵錯(cuò)誤日志如下:
[ 1406594712.769015]: IMSettings-Daemon[7165]: INFO: Attempting to switch IM to FCITX [lang=en_US.utf8, update=true] org.gnome.settings-daemon.plugins.keyboard.active is true. imsettings is going to be disabled.
由于屬性“org.gnome.settings-daemon.plugins.keyboard.active”當(dāng)前的值是true,禁止了imsettings運(yùn)行。 所以解決的方案很簡(jiǎn)單,在終端上將相關(guān)屬性設(shè)置為false即可。
gsettings set org.gnome.settings-daemon.plugins.keyboard active false
類(lèi)似的錯(cuò)誤也可以通過(guò)同樣的方法來(lái)解決,日志詳盡,心中不慌。
如果不了解gsettings,可以參見(jiàn)gsettings簡(jiǎn)介及常用操作介紹