使用linux最沮喪的事情莫過於中文輸入法切換不出來,甚至有人錯誤地認為,要使用中文輸入法,必須把“區域和語言”(Region & Language)設定為中國-中文。輸入法只是一個軟體,和區域設定沒有什麼必然聯絡。如果你在初始化安裝系統的時候,選擇了中文,倒是會幫你把中文輸入法打包安裝好。
所以和我一樣使用en-us區域設定的朋友,如果輸入法出了問題,怎麼排查解決呢?
首選你必須安裝一箇中文輸入法,推薦小企鵝
sudo yum install fcitx-pinyin
但是,安裝完後,發現按 ctrl+space 卻沒有召喚出輸入法。需要在終端中執行
im-chooser
選中當前輸入法為FCITX,並進行基本的設定。 大部分情況下,至此你就可以正常地使用一箇中文輸入法了。
在早期的一些教程中,會強調在X環境變數(例如~/.xprofile,~/.xinitrc,~/.xinputrc )中宣告環境變數來保證輸入法正常啟動。實際上沒有必要。
export GTK_IM_MODULE=fcitx export QT_IM_MODULE=fcitx export XMODIFIERS=”@im=fcitx”
現在的發行版喜歡用軟連結來管理設定,系統讀取的位置不變(認準軟連結),使用者設定時改變軟連結的實際指向,這是一個漂亮的解耦做法。如果你開發過跨平臺跨環境的應用,就知道相容適配有多麻煩,一個簡單易行的方案有多寶貴。
來看看Fedora20裡面是怎麼做的。
所以當你用標準姿勢安裝並設定過輸入法,最後是可以透過軟連結指向正確關聯。 反正 /etc/X11/xinit/xinitrc.d/50-xinput.sh 啟動指令碼認準了/etc/X11/xinit/xinputrc
如果你不順利,在執行im-chooser的時候出現了錯誤。 內容大概是
GDBus.Error:org.gtk.GDBus.UnmappedGError.Quark._imsettings_2derror_2dquark.Code5: Current desktop isn’t targeted by IMSettings.
不要著急,Linux的易用性雖然還是有差距,但是一直保持有詳細錯誤日誌的優良傳統。 在 ~/.cache/imsettings/log 看到關鍵錯誤日誌如下:
[ 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執行。 所以解決的方案很簡單,在終端上將相關屬性設定為false即可。
gsettings set org.gnome.settings-daemon.plugins.keyboard active false
類似的錯誤也可以透過同樣的方法來解決,日誌詳盡,心中不慌。