ubuntu中文输入法输入不了中文
sudo vim /etc/profile
在最后添加下面语句
export XMODIFIERS=@im=ibus
export GTK_IM_MODULE=ibus
export QT_IM_MODULE=ibus
XMODIFIERS=@im=ibus
QT_IM_MODULE=xim
重启电脑ok
X11在初始化过程中,需要对输入法做一定的设定,其执行脚本在CentOS7.4中位于这个位置:
/etc/X11/xinit/xinitrc.d/50-xinput.sh
这个脚本可能读取多个配置文件,从而最终决定GTK_IM_MODULE和QT_IM_MODULE变量的值,而不是沿用启动X时已有的值(这就是坑啊);
配置文件的优先权顺序为:
- 用户的设定为最高顺位,如果有,文件位于~/.config/imsettings;
- 系统设定为次高级顺位,文件位于/etc/X11/xinit/xinputrc,它事实上是一个软链,链接到了/etc/X11/xinit/xinput.d/ibus.conf,没错,这个文件设定了正确的ibus输入法;
但是(最讨厌的但是),它有个前置条件,需要检查系统的语言环境是否是非英文环境,即如果是英文环境,它会继续从后面的顺位找配置文件;
这也解释了为什么会有人(资料二)通过修改系统语言解决这个问题,但这里并不是直接检查LANG变量,而是先检查LC_CTYPE,然后才检查LANG; - xxxx,略去不写,有兴趣的自己读一下这个脚本;
- 最后,读一个默认的配置文件,位于/etc/X11/xinit/xinput.d//none.conf
就是这个none.conf中,把GTK_IM_MODULE和QT_IM_MODULE变量的值给改成了gtk-im-context-simple与xim。
于是,最后我在~/.bashrc中加了一条环境变量export LC_CTYPE=zh_CN.UTF-8,这样即不会把gnome的菜单改成中文菜单,又可以解决xinput.sh脚本对语言环境的检查,解决了firefox启用ibus的问题;
版权声明:本文为CSDN博主「小妖666」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_38883338/article/details/82153933