Pan*_*dya 28 gnome input-method trisquel
我将Trisquel GNU/Linux 7.0 LTS 与 GNOME 3 Flashback Environment 一起使用。
我听说过三种不同的输入法,即。ibus
,xim
和uim
。它似乎ibus
是预装在我的系统上的。
$ cat trisquel_7.0_i686.iso.manifest | grep ibus
gir1.2-ibus-1.0 1.5.5-1ubuntu3
ibus 1.5.5-1ubuntu3
ibus-gtk:i386 1.5.5-1ubuntu3
ibus-m17n 1.3.4-3ubuntu1
ibus-table 1.5.0.is.1.5.0.20130419-2
libibus-1.0-5:i386 1.5.5-1ubuntu3
libusb-0.1-4:i386 2:0.1.12-23.3ubuntu1
libusb-1.0-0:i386 2:1.0.17-1ubuntu2
libusbmuxd2 1.0.8-2ubuntu1
libustr-1.0-1:i386 1.0.4-3ubuntu2
Run Code Online (Sandbox Code Playgroud)
在面对这个问题时,我学会了安装uim
和设置GTK_IM_MODULE="uim"
at ~/.profile
。最近我去除uim
,并去除GTK_IM_MODULE="uim"
来自线~/.profile
。但是为了克服这个错误,我现在打算摆脱ibus
。
没有安装任何额外的输入方法,(比如 Trisquel 的全新安装),echo $GTK_IM_MODULE
输出xim
所以,我很困惑,因为考虑到默认输入方法是ibus
,那么为什么$GTK_IM_MODULE
要说xim
?
我也可以apt-get remove ibus
吗?或者我应该uim
先安装然后删除ibus
?另外我想知道当前正在使用哪种输入法ibus
或xim
?什么是设置输入法的正确方法(即它GTK_IM_MODULE="uim"
是~/.profile
)?
此外,我发现了一个 gsettings 方案:
$ gsettings get org.gnome.desktop.interface gtk-im-module
'gtk-im-context-simple'
Run Code Online (Sandbox Code Playgroud)
简而言之/广义上,我需要帮助来了解安装/删除和设置不同的输入法:
Jan*_*rff 63
整个 X11 输入堆栈一团糟。首先,如果您只是输入由 XKB 键盘布局定义的拉丁字符或多字符组合序列,则不需要任何特殊的输入法框架。严格来说,任何多键序列,例如死键,都需要非常简单的输入法。但它们由 libx11/XKB 提供,无需任何额外的 IM 框架即可工作。因此,如果您不需要输入中文或日文等语言,卸载所有 ibus、uim、fcitx 或任何您拥有的输入法是完全没问题的。
正如您已经说过的,Gnome 将 ibus 设为默认输入法,这一决定并非所有人都满意。有很多人更喜欢 fcitx(这似乎是大多数 KDE 发行版的默认设置)而不是 ibus,原因有几个:是正确的语言支持(主要是日语、简体还是繁体中文)或性能问题。由于我不会说任何需要特殊 IM 框架的东方语言,因此我无法在辩论中添加任何内容。但是,如果您对 fcitx 与 ibus 的更多详细信息感兴趣,您可能需要阅读这篇略有过时(2012 年)但可能仍然准确的LWN 文章。
然而,ibus 是 Gnome 的默认 IM 的事实并没有使它成为强制性的。您可以使用任何其他您喜欢的输入法,也可以根本不使用。IM 配置是通过环境变量完成的。但是除了当您只使用 GTK+ 应用程序时(我对此表示怀疑),您应该设置的不仅仅是GTK_IM_MODULE
. 设置输入法的正确方法是:
export GTK_IM_MODULE="fcitx"
export QT_IM_MODULE="fcitx"
export XMODIFIERS="@im=fcitx"
Run Code Online (Sandbox Code Playgroud)
如果是 fcitx 或
export GTK_IM_MODULE="ibus"
export QT_IM_MODULE="ibus"
export XMODIFIERS="@im=ibus"
Run Code Online (Sandbox Code Playgroud)
如果是 ibus。uim 以同样的方式工作。如果要明确禁用任何输入法,请使用以下设置:
export GTK_IM_MODULE="gtk-im-context-simple"
export QT_IM_MODULE="simple"
Run Code Online (Sandbox Code Playgroud)
空字符串也有效。
您可以在系统范围内/etc/profile
(或/etc/profile.d
分别在 内的专用文件)或本地内设置这些变量~/.xprofile
。将其设置为~/.bashrc
或~/.profile
将不会确保在使用图形登录管理器(例如 GDM、SDDM、KDM 或 LightDM)登录您的系统时将执行这些行。如果您使用 XDM、Slim 或 开始 X 会话startx
,则需要将这些行放在~/.xinitrc
.
如果您配置了 ibus 以外的输入法,请在之后转到 Gnome 设置并确保禁用所有与 ibus 相关的设置,尤其是所有键盘快捷键。或者,使用以下命令告诉 Gnome 不要触摸您的键盘设置:
gsettings set org.gnome.settings-daemon.plugins.keyboard active false
Run Code Online (Sandbox Code Playgroud)
或完全卸载 ibus。
现在XIM呢?XIM 是一种非常过时的输入法协议,ibus 和 fcitx 都仅出于传统支持的原因实施它。您现在没有真正的理由想要在这两者中的任何一个上使用 XIM。您想要设置的唯一原因GTK_IM_MODULE="xim"
是覆盖 GTK 的硬编码 ComposeKey 设置。
回答您的另一个问题:除了查看环境变量或了解系统上安装了哪些 IM 之外,我认为没有真正的方法可以检测当前哪种输入法处于活动状态。如果GTK_IM_MODULE
未设置,GTK 将根据/etc/gtk-2.0/gtk.immodules
. GTK 3.0 查找/usr/lib/gtk-3.0/3.0.0/immodules.cache
其中由gtk-query-immodules-3.0
.
GTK_IM_MODULE
设置为的原因xim
可能是 中某处的一些杂散变量定义/etc/profile
,/etc/profile.d/*
或任何其他本地或全局 shell RC 文件。如果您觉得有必要,请随意取消或覆盖此变量。
但是,根据此Gnome 错误报告评论,我假设通过配置gsettings
的值会覆盖GTK_IM_MODULE
为 DBus 激活的应用程序设置的值。因此,至少您的 Gnome 应用程序目前可能正在使用gtk-im-context-simple
,这实际上意味着标准行为(即没有 ibus 或任何其他专用 IM)。
归档时间: |
|
查看次数: |
29970 次 |
最近记录: |