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