GTK_IM_MODULE 和 GTK_MODULES 在哪里设置?

GTK_IM_MODULE 和 GTK_MODULES 在哪里设置?

当我在 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,我无法判断(我需要尝试一些方法来确定)。

即使不需要:

  1. 关于集合的问题GTK_IM_MODULE仍然存在。
  2. 我将尝试删除.xinputrc、重新启动并再次检查。

答案1

是的,这很可能就是原因。

至于你问的为什么~/.xinputrc会包含这个,说来话长。简而言之,这是关于历史上实现合理默认配置的各种尝试。我假设你几年前安装了 Ubuntu,后来升级到了 20.04。

我的建议:删除~/.xinputrc并重启即可。除非你主动更改输入法配置,否则它不会恢复,例如语言支持

答案2

我确认在另一个存在同样问题的系统中,执行

$ im-config -n ibus

重新启动解决了问题。

答案3

下列的这里,你需要做的是输入

export GTK_IM_MODULE="ibus"

在以下一个文件(如果不确定,则为全部文件)中:

  • 的〜/ .bash_profile
  • 〜/ .profile
  • /etc/配置文件
  • 〜/.xprofile
  • ~/.config/environment.d/im.conf

根据以下信息这里

通过将 GTK_IM_MODULE 设置为“ibus”,警告消息将会消失。

我的假设是默认值“xim”是由某些根系统文件硬设置的,并且会在系统启动时不断设置该值。通过添加上述代码,系统将在启动过程中手动将该值设置为“ibus”,因此不会触发警告。

相关内容