opensuse 13.1 下gnome-terminal终端无法调出fcitx输入法问题的解决
前段时间由于自己使用的archlinux出了问题,把它换成了opensuse 13.1。安装的方法是保留了原arch的/home所在的分区,而其他分区(/, /boot, swap)都重新格式化了,然后装的时候把新建的用户名命名成了和archlinux同样的用户名(起名叫downtown),导致新的opensuse中downtown的主目录与原archlinux中的主目录相同,均为/home/do
前段时间由于自己使用的archlinux出了问题,把它换成了opensuse 13.1。安装的方法是保留了原arch的/home所在的分区,而其他分区(/, /boot, swap)都重新格式化了,然后装的时候把新建的用户名命名成了和archlinux同样的用户名(起名叫downtown),导致新的opensuse中downtown的主目录与原archlinux中的主目录相同,均为/home/downtown/。于是,这导致原用户的主目录中的一些配置文件对现有桌面系统也起了作用,由此产生了不少问题。
比如,刚装完的时候,登陆后进不了opensuse的gnome桌面,后来发现是主目录下的.xinitrc文件所致。原arch使用的是lxde桌面。因此.xinitrc中写的是:
#exec gnome-session
exec startlxde
于是乎,将startlxde一行注释掉(改行最前边写一个"#"),而将gnome-session一行取消注释,如下:
exec gnome-session
#exec startlxde
于是就丧心病狂地进入gnome桌面。
类似的问题还有很多,但不是这篇blog想要叙述的重点(其实是已经记不起来了),就不一一列举了。下面只说一下这些问题里最难解决的一个——fcitx输入法问题,以供大家参考,也给自己留个笔记。
我出现的问题是:
fcitx中文输入法在firefox、wps(for linux)等应用中都能使用Ctrl+Shift成功启动,唯独在gnome-terminal终端中启动不了,由此导致vim中也使用不了。vim都输入不了中文,这可就摊上大事了。于是决定解决之。
问题未解决前,我的一些配置文件的配置情况是(仅摘录我认为有用的)
1 语言环境locale的配置情况:
$ locale
LANG=zh_CN.UTF-8:zh_CN.UTF-8
LC_CTYPE="en_US.UTF-8"
......
LC_ALL=en_US.UTF-8
2 .xinitrc 的配置情况:
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"
3 .bashrc的配置情况
#set language environment.
export LANG="$LANG:zh_CN.UTF-8"
export LC_ALL="en_US.UTF-8"
解决问题的过程:
1
上网查,说LC_TYPE环境变量必须设为中文语言(比如设置为zh_CN.UTF-8)才行,而修改成LC_CTYPE并重启后,仍不成功。
在对LC_CTYPE修改时,由于LC_TYPE(或LC_*)、LANG、LC_ALL这几个环境变量相互牵连,他们之间存在着优先级关系(LC_ALL > LC_* > LC_LANG),而彼此受到影响。
这里的影响主要是:如果已经设置了LC_ALL,则它会屏蔽掉LC_CYPE本身的设置,而将LC_TYPE设置成与LC_ALL相同的值。
2
继续谷歌,这篇文章中(https://wiki.archlinux.org/index.php/Fcitx_%28%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87%29)说
还可能是一定要设置GTK_IM_MODULE等变量,于是在.xinitrc中设置(其实原来arch的系统配置中已经有了)。
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"
重启,未果。
3(这与上边的标题3不是对应的)
网上说,需要修改"/etc/sysconfig/language"文件的内容,将其中的INPUT_METHOD变量所在行做如下设置:
INPUT_METHOD=“fcitx”
修改,重启,仍未果。
4
“
如果 Fcitx 没有随桌面环境自动启动或者希望修改fcitx启动参数,请用桌面环境提供的自动启动工具配置或者编辑用户目录~/.config/autostart/
下的fcitx-autostart.desktop
文件确认自动启动是否被禁用. 如果用户目录下的文件尚不存在, 你可以复制自动启动文件 /etc/xdg/autostart/fcitx-autostart.desktop
到用户目录
cp /etc/xdg/autostart/fcitx-autostart.desktop ~/.config/autostart/
”
然而我~/.config/目录下的autostart是一个文本文件,不存在autostart目录。而此文件中很恰巧地记录了一些和fcitx有关的东西,不知道它是什么。重命名这个文件使之不起作用。重启,仍未果
5
运行fcitx-diagnose让其自己检测一下,输出的检测报告没发现有什么奇怪的地方。错误只有两个:
**Config GUI for gtk2 not found.**
......
Qt5**Cannot find fcitx input method module for ${1}.**
感觉它们无关痛痒,故放弃。
6
网上说fcitx与ibus冲突,故将ibus全部卸载掉。重启未果。
最终几乎把我能力范围内的所有方法尝试过了。忍无可忍,决定卸载fcitx,在重新安装一下试一试。
解决方法:
1 卸载fcitx:zypper rm --clean-deps fcitx
2 重启
3 重新安装fcitx,但仅安装所需要的最少组件(--no-recommeds):zypper in --no-recomends fcitx fcitx-sunpinyin
4 重启
5 居然成功了,在gnome-terminal中成功切换了中文
总结:
虽然最终仍未找到fcitx在gnome-terminal终端中不可使用的根本原因,不过自己感觉是原先archlinux系统的主目录中的某个配置文件影响了现今的系统配置,然而卸载和重新安装后,这个(也可能是多个)配置文件就被删除或被新的配置文件覆盖了。然而我没能找到这个文件和错误。若有哪位大牛看到这里,且知道原因,希望能帮我指出,共同进步。
如今重新安装后问题居然得以解决,的确让我有剑(wu)走(bi)偏(dan)锋(teng)之感。不过这也给了我一种解决问题的新的启示。
将这次痛苦的过程记在这里。。
更多推荐
所有评论(0)