在我的 Ubuntu 20.04 中第一次启动 Eclipse 时,我收到了一个警告(实际上似乎是 2 个警告)
***WARNING: Detected: GTK_IM_MODULE=xim. This input method is unsupported and can cause graphical issues.
***WARNING: Unset GTK_IM_MODULE or set GTK_IM_MODULE=ibus if flicking is experienced.
log4j:WARN No appenders could be found for logger (org.eclipse.jgit.internal.storage.file.FileSnapshot).
log4j:WARN Please initialize the log4j system properly.
为了处理GTK...
警告,我用谷歌搜索了一下。我在这里发现“Gnome 将 ibus 设为默认输入法”(即使答案来自 2016 年,下图表明它仍然适用)。但
$ env | grep -i gtk
GTK_IM_MODULE=xim
GTK_MODULES=gail:atk-bridge
所以我想知道在哪里GTK_IM_MODULE
设置。我尝试了什么(没有运气):
$ grep -i gtk ~/.bashrc
$ grep -i gtk ~/.profile
$ grep -i gtk /etc/profile
$ grep -i -nH gtk /etc/profile.d/*
$ grep -i gtk ~/.xprofile
$ grep -i gtk ~/.xinputrc
$ gsettings get org.gnome.desktop.interface gtk-im-module
'gtk-im-context-simple'
(请注意,根据dconf-editor
,默认值为''
)。
接下来我将尝试警告中的建议Unset GTK_IM_MODULE or set GTK_IM_MODULE=ibus
,但我仍然有问题:
在哪里GTK_IM_MODULE
设置GTK_MODULES
?
启动时im-config
我看到这个
编辑:
也许~/.xinputrc
是负责任的。其内容:
# im-config(8) generated on Tue, 03 Nov 2020 10:36:11 -0300
run_im xim
# im-config signature: 1f92fadecc95eaeaf5534ec0902b5a9b -
如果这是原因,为什么要.xinputrc
包含它?
编辑#2:
我已删除.xinputrc
,注销并再次登录。仍然
$ env | grep -i gtk
GTK_IM_MODULE=xim
GTK_MODULES=gail:atk-bridge
所以它似乎.xinputrc
不是罪魁祸首。
编辑#3:
我执行了
$ im-config -n ibus
$ im-config -m
default
ibus
ibus
ibus
所以我确定ibus
是最新的(在输出的第二行,我以前有xim
过)。我注销并再次登录。仍然
$ env | grep -i gtk
GTK_IM_MODULE=xim
GTK_MODULES=gail:atk-bridge
$ cat .xinputrc
# im-config(8) generated on Thu, 04 Mar 2021 23:34:26 -0300
run_im ibus
# im-config signature: 3d5777226bbd6243ce412ee4470b8020 -
另外,启动 eclipse 仍然会给出相同的警告(预期,因为环境变量具有相同的值)。随之而来的闪烁仍然存在。
根据评论中的要求
$ env | grep -E '_IM|XMOD'
GTK_IM_MODULE=xim
QT4_IM_MODULE=xim
XMODIFIERS=@im=none
CLUTTER_IM_MODULE=xim
QT_IM_MODULE=ibus
所以它似乎.xinputrc
不是罪魁祸首。
编辑#4:
重启后
$ im-config -m
default
ibus
ibus
ibus
$ env | grep -E '_IM|XMOD'
XMODIFIERS=@im=ibus
QT_IM_MODULE=ibus
$ env | grep -i gtk
GTK_MODULES=gail:atk-bridge
$ grep -i gtk ~/.profile
$ grep -i gtk /etc/environment
$ grep -i gtk /etc/environment.d/*
/etc/environment.d/90atk-adaptor.conf:GTK_MODULES=${GTK_MODULES:+$GTK_MODULES:}gail:atk-bridge
另外,eclipse没有显示警告(如预期的那样),并且闪烁消失了。
是否GTK_IM_MODULE
也设置在 中/etc/environment.d/90atk-adaptor.conf
,我不知道(我需要尝试一些事情来确定)。
即使不需要:
- 关于什么集合的问题
GTK_IM_MODULE
仍然存在。 - 我将尝试删除
.xinputrc
、重新启动并再次检查。
是的,这很可能是原因。
至于你的问题为什么
~/.xinputrc
会包含它,这是一个很长的故事。简而言之,它是关于历史上实现合理默认配置的各种尝试。我假设你几年前安装了 Ubuntu,后来升级到 20.04。我的建议:只需删除
~/.xinputrc
并重新启动。除非您通过例如Language Support主动更改输入法配置,否则它不会返回。我确认在另一个具有相同问题的系统中,执行
并重新启动解决了问题。