记一次fcitx安装折腾
背景:gentoo系统进行了一次大升级(大约积攒了一年多的时间没有滚动升级),升级后桌面环境为gnome-3.18.0
过程:
1 安装fcitx, emerge -avq fcitx,并且添加了gtk3的use flag (添加文件/etc/portage/package.use/fcitx文件,文件内容为app-i18n/fcitx gtk3 gtk2)
2 安装fcitx-cloudpinyin fcitx-sunpinyin, emerge -avq fcitx-cloudpinyin fcitx-sunpinyin,使得fcitx可以进行中文输入
3 此时,还不能使用fcitx,终端中输入命令fcitx,将会有如下的关键提示:1
2(ERROR-7032 /var/tmp/portage/app-i18n/fcitx-4.2.9.1/work/fcitx-4.2.9.1/src/frontend/xim/xim.c:240) Start XIM error. Another XIM daemon named ibus is running?
(ERROR-7032 /var/tmp/portage/app-i18n/fcitx-4.2.9.1/work/fcitx-4.2.9.1/src/lib/fcitx/instance.c:440) Exiting.
这是因为gnome默认安装ibus作为输入法管理器,所以我们需要卸载ibus输入法(gentoo系统必须卸载,禁用无效),具体过程为
1)将-i18n这个use flag添加到make.conf文件(/etc/portage/make.conf)
2)emerge –update –newuse –deep @world –ask
3)对gnome-shell包禁用nls这个use flag(执行命令:echo ‘>=gnome-shell-30.18.0 -nls’ >> /etc/portage/package.use/gnome-shell)
4)移除ibus包(执行命令 emerge -avC ibus,执行之前,建议先执行emerge -pv –depclean ibus,确保ibus没有被其他包所依赖)
4 重启系统
5 打开Fcitx Configuration,添加中文输入法(通过fcitx-config-gtk3开启配置界面,此时应该默认有中文输入法和英文输入法,去除其中的中文输入法,重新添加sunpinyin)
6 注销并重新登录,如有必要,重启系统
7 修改(或新建,如果不存在).xprofile文件,设置如下:1
2
3export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"
注销并重新登录,如有必要,重启系统,经过以上步骤,在终端中以及vim编辑器下还不能正常切换中英文输入法,只能使用英文输入,为解决这个问题,进行如下一步操作:1
gsettings set org.gnome.settings-daemon.plugins.xsettings overrides "{'Gtk/IMModule':<'fcitx'>}"
8 安装google-chrome, emerge -avq google-chrome,在此之前,需要先确保已经通过emerge –sync对系统源进行更新,否则可能出现无法下载google-chrome软件包,因为在gentoo源上始终只提供截止当前最新的google-chrome包,老版本的包都会被移除
9 重启系统,发现ctrl+space无法在chrome下进行中英文输入法切换,在其他软件,包括gentoo默认浏览器下,都可以正常输入中文,只不过输入中文为繁体,这可以通过ctlr+shift+f组合键切换为简体中文(在fcitx运行的情况下)
10 通过设置use并重新编译fcitx解决仅在google-chrome下不能切换中英文问题:修改/etc/portage/package.use/fcitx文件内容为app-i18n/fcitx gtk3 gtk2,然后重新编译fcitx,再重启chrome浏览器,问题得以解决
参考资料
1 https://wiki.archlinux.org/index.php/fcitx
2 https://fcitx-im.org/wiki/Note_for_GNOME_Later_than_3.6
3 https://forums.gentoo.org/viewtopic-p-7961822.html?sid=fd7b34290ea4c40f7359ab52d4cea033