阅读更多
7.10 SCIM 输入失效的问题--有时键盘失效、不能重命名的原因
症状
1.普通权限登录后有时不能在有输入控件的地方输入(典型症状为不能重命名文件)
2.root程序打开后有输入控件的地方什么也输不出来,而且不像feisty一样会看到两个SCIM图标
什么是输入控件?
直接理解为在你过去的认识里面所有可以输入/编辑的地方就可以了,比如说本版里有提到的firefox输入框/文件夹重命名区域/IM软件和文本编辑软件的文本编辑区域...bla bla
如果在输入控件上调右键菜单->输入法->默认(原来是输入法->X输入法),一切输入都正常了,要是你觉得每次输入什么都要看右键菜单麻烦----这只是治标不治本的方法,往下看吧。
man scim后有这么一段说明:
引用:
ENVIRONMENT
XMODIFIERS
Should be set to "@im=SCIM". Note that XMODIFIERS is case sen-
sitive, and scim need uppercase. If you set it to lowercase,
there will be no error message but scim won't work.
GTK_IM_MODULE
GTK+ applications can use many different modules to connect with
input methods, and SCIM can work in two different modes to pro-
vide input methods to GTK+ with two different modules. One is
XIM mode, using the "xim" GTK IM module from GTK+ itself. The
other is GTK IM mode, using the "scim" GTK IM module provided by
SCIM platform. The environment variable GTK_IM_MODULE is used
by GTK+ to specify which GTK IM module the application should
use, to use SCIM's two modes, set GTK_IM_MODULE to "xim" or
"scim" accordingly.
有三个文件应该关注一下:
/etc/X11/Xsession.d/80im-switch(根据locale切换不用语言输入法的脚本)
/etc/X11/xinit/xinput.d/all_ALL(链接到同文件夹下的default)
/etc/X11/xinit/xinput.d/zh_CN(我们最关心的,其他语言请类推,链接到同文件夹下的scim)
根本解决方案:
看到这里应该猜到这个问题的根本原因----输入控件用了默认的xim输入法没用scim了吧,来,改:
代码:
$sudo gedit /etc/X11/xinit/xinput.d/all_ALL
找到
GTK_IM_MODULE=
QT_IM_MODULE=
这两行后面是空的,改成
GTK_IM_MODULE="scim"
QT_IM_MODULE="scim"
代码:
$sudo gedit /etc/X11/xinit/xinput.d/zh_CN
找到
GTK_IM_MODULE=xim
QT_IM_MODULE=xim
改成
GTK_IM_MODULE="scim"
QT_IM_MODULE="scim"
保存重启X。重启后scim的行为就正常了