Fedora 22 上安裝 fcitx 五筆輸入法

今天博主換操做系統了,以前用的是 CentOS,現在換成 Fedora。主要的緣由仍是 CentOS 安裝一個東西太過折騰了。html

以前用的是 ibus,在 Fedora 上我打算用一下 fcitx。 
java

按我以前的一篇博文的方法,基本上不行。這裏博主從新整理一下安裝過程。linux


筆者主要參考這篇文章的方法:Fedora 20 安裝 fcitxshell

如下爲博主親測過程:session

1、首先移除 ibus
ide

sudo yum remove ibus

提示:在 Fedora 22 下,建議使用 dnf 命令代替 yum,使用方法與 yum 徹底一致。
工具

2、而後安裝 fcitx
post

sudo yum install fcitx fcitx-configtool

3、還要安裝中文輸入庫優化

sudo yum install fcitx-table-chinese

這裏博主要特別說明一下:如裏沒有這步,在配置的輸入法的時候就沒有中文輸入法出現。操作系統

4、配置環境變量

要配置 GTK_IM_MODULE, QT_IM_MODULE, XMODIFIERS。

上面3個環境變量是告訴 gtk 或 qt 的界面程序,在輸入時使用指定的輸入法模塊,好比 ibus 或 fcitx 或其它。

因而在 /etc/profile.d/ 下建一個文件 im.sh,這個名字隨意,只要是以.sh結尾就行,具體緣由參考 /etc/profile

內容以下:

export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"

這麼作的目的是每次啓動的時候,上面的這3個環境變量都被設置好。

5、使 fcitx 隨系統啓動

若是不設置這一步的話,那每一次從新登入都得在後臺啓動一次 fcitx

fcitx &

很不太方便~

方法能夠參考:

如何爲Gnome3添加自啓動程序

在Gnome下安裝Fcitx並設置開機自啓動

往 ~/.config/autostart/ 下寫 im.destop 的方式博主試過,不行

編輯 ~/.gnomerc 的方法也試了,不行

博主研究了一下 /etc/X11/xinit/ 目錄下的文件,特別是分析 xinitrc 文件。該文件是界面系統啓動後的執行腳本。


在 /etc/X11/xinit/xinitrc.d/ 目錄下有 50-xinput.sh 文件,裏面提到


那就把啓動加在 ~/.xinputrc 文件裏面,內容爲: "fcitx &" ,退出登入,再試。

此次是能夠的了!一登入就有 fcitx 輸入法。

提示:從新登錄後,~/.xinputrc 文件不會再存在了,它是被X11移到別的路徑下去了(詳見 /etc/X11/xinit/xinitrc.d/50-xinput.sh,L45)。

其實就是被 mv 到 ~/.config/imsettings/xinputrc 文件裏,咱們也能夠直接修改這個文件。

6、優化

感受不該該將環境變量的配置放 /etc/profile.d/ 下,必竟 fcitx 是依賴於 X11 的一個工具,最好全放 ~/.xinputrc 文件裏。

刪除 /etc/profile.d/im.sh,編輯 ~/.xinputrc,內容以下: 

export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"
fcitx &

完成!從新登入。

7、解決terminal下不能用fcitx問題

解決這個問題的方法很簡單,就是在 ~/.xinputrc 中添加一行,以下:

export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"
eval `dbus-launch --sh-syntax --exit-with-session`
fcitx &


8、後續遇到的問題

從新了一次系統,安裝的時候選擇的語言是英文,結果就無法按上面的方法設置並啓動 fcitx,解決的辦法就是將系統的 language 切換成中文。

 

而後從新登入。

此次還發現,在 terminal 下可使用 fcitx,在 firefox 與 gedit 下就用不了。真是懊惱呀!用命令查看咱們設置的兩個環境變量:

$ echo $QT_IM_MODULE
fcitx
$ echo $GTK_IM_MODULE

$

原來,GTK_IM_MODULE 這個環境變量是空的。用命令啓動 gedit

GTK_IM_MODULE=fcitx gedit

這樣啓動的 gedit 就可使用 fcitx 了。看來還真是 "GTK_IM_MODULE" 這個環境變量引發的。

真的好奇怪,爲何 QT_IM_MODULE 有值,而恰恰 GTK_IM_MODULE 卻沒有值呢?爲啥?

解決方法是,將

export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"
eval `dbus-launch --sh-syntax --exit-with-session`

放到 /etc/procfile.d/xim.sh 文件中去,而在 .xinputrc 中只放

fcitx &

這樣就解決上面的這個環境變量不到位的問題。


9、再次遭遇 gnome-terminal 不用使用 fcitx 問題

此次我使用了上面全部的辦法都不行,最後找到有一方法是,修改gnome的配置表: 

sudo gsettings set org.gnome.settings-daemon.plugins.xsettings overrides "{'Gtk/IMModule':<'fcitx'>}"

這就是將 org.gnome.settings-daemon.plugins.xsettings 下的 overrides 選項設置成 {'Gtk/IMModule':<'fcitx'>}

也能夠用 dconf-editor 窗口工具(可能要安裝)來進行設置:


將 {} 改爲 {'Gtk/IMModule':<'fcitx'>} 便可。


注意:這兩種方法都要用 root 權限,不然不會成功。

這樣以後,退出用戶,從新登入便可。


10、再次遭遇 gnome-terminal 不用使用 fcitx 問題

此次是使用了上面的全部辦法,最終的解決辦法是:

/etc/profile.d/xim.sh (沒有就本身建立)

export XIM=fcitx
export XIM_PROGRAM=fcitx
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"
eval `dbus-launch --sh-syntax --exit-with-session`

若是發現不奏效,就在終端裏查一下上面的5個環境變量是否有值,必定要確保它們的值爲"fcitx"。對於最後一行,查看環境變量:DBUS_SESSION_BUS_PID 是否有值

建立 ~/.xinputrc 文件:

fcitx &

它的功能就是在啓動gnome時後臺啓動 fcitx從新登入

相關文章
相關標籤/搜索