我的窗口管理器/桌面环境有一些应用程序,其中死键(例如`,〜,ö)默认情况下不起作用,当我按下然后时,它们有时根本不会在按键时显示,有时它们没有预期行为('`'+ 'e'= è)。不过,它们确实可以在某些应用程序上运行,例如在 Firefox 上。我怎样才能使它们在所有应用程序中都按预期工作?
答案1
教程
大家好,我来这里是为了解决这个我们都曾经遇到过的共同问题。本教程的目的就是一劳永逸地解决这个问题。信息就在那里,但到处都是,有时我们对解决这个问题可以找到的不同方法的数量感到困惑。在这里,我将尝试综合所有信息,以便我们可以在任何应用程序中使用死键并编写符号。
当我们使用窗口管理器(WM)或桌面环境(DE)未正确配置时,通常会出现此问题。
解决方案
有两种方法可以解决这个问题:
- 禁用输入法引擎(IME)并使用 X11 组合键 -此方法仅适用于拉丁语言字符。
- 正确配置 iBus 或 Fcitx -这种方法适用于每种语言。
在本教程中,我将讨论这两种方法,并谈谈为什么您应该考虑它们。
禁用输入法引擎(IME)
IME,如 iBus 或 Fcitx,是为编写非拉丁字符语言(例如日语、中文等)而构建的复杂引擎。
如果您不需要输入这些语言,则实际上不需要使用 iBus 或 Fcitx,因为 X11 可以非常轻松地处理组成拉丁字符的任务。
完全禁用 iBus 并使用系统 x11 来编写和使用您的死键。
如何:
这些步骤取自贾内克·贝文多夫的回答
你需要这些环境变量:
export GTK_IM_MODULE=""
export QT_IM_MODULE=""
export XMODIFIERS=""
您可以设置这些变量系统范围内的 /etc/profile(或分别位于 /etc/profile.d 内的专用文件)或您的本地~/.xprofile。在 ~/.bashrc 或 ~/.profile 中设置将无法确保在使用图形登录管理器登录系统时执行这些行例如 GDM、SDDM、KDM 或 LightDM。如果您使用 XDM、Slim 或 startx 启动 X 会话,则需要将这些行放入 ~/.xinitrc 中。
如果您配置了 ibus 以外的输入法,请随后转到 Gnome 设置并确保禁用所有 ibus 相关设置,尤其是所有键盘快捷键。或者,使用以下命令告诉 Gnome 不要触摸键盘设置:
gsettings set org.gnome.settings-daemon.plugins.keyboard active false
之后,重新启动计算机并测试有问题的应用程序。
正确配置 iBus 或 Fcitx
如果您需要适合您的语言的非常复杂的输入法引擎,或者您确实希望能够将其作为输入法,则应按照以下步骤正确配置您的 IME。
在这里您可以选择,您可以使用 iBus 或 Fcitx5,首先从桌面环境中安装的内容开始。
对于那些使用最少安装的窗口管理器的人,请查看iBus Arch 维基和Fcitx5 Arch 维基做出正确的决定。
如何:
1. 输入法配置
首先,在我们的系统中,我们需要将输入法设置为 iBus 或 Fcitx5。
在您的终端中,输入:
$ im-config
然后点击好的, 选择是的(我们希望更新用户配置)。在下一个窗口中,选择您想要的 IME(伊巴士或者福西特克斯), 然后好的和好的再次。
系统会告诉您需要重新启动系统才能使配置生效。
2. 重新启动计算机。
3.配置iBus或fcitx5
系统重启后,通过 GUI 应用程序配置输入方法
巴士
$ ibus-setup
它会提示您启动 ibus-daemon,单击是的(重要的是,此时您的系统中没有自动启动 ibus-daemon 的脚本,否则具有最近配置设置的新 ibus-daemon 将无法启动。)
Fcitx5
配置完成后,我们需要确保系统启动时 iBus 守护进程或 fcitx 守护进程正在运行。
对于桌面环境,自动启动通常是开箱即用的。对于使用窗口管理器的我们,或者如果您的 ibus 守护程序未在桌面环境中自动启动,我们需要创建一个脚本来通过会话启动 IME。
因此,在您的~/.xprofile
文件中,您将需要这些行:
对于 iBus
export GTK_IM_MODULES="ibus"
export QT_IM_MODULES="ibus"
export XMODIFIERS="@im=ibus"
ibus-daemon -drxR
对于 Fcitx5
export GTK_IM_MODULES="fcitx"
export QT_IM_MODULES="fcitx"
export XMODIFIERS="@im=fcitx"
fcitx5 -d
有关 Fcitx5 自动启动的更多信息:Fcitx5 Arch 维基
4. 测试您的应用程序
现在测试应用程序是否正常工作。
5. 重新启动计算机
最后一次重启是为了检查 IME 在我们配置后是否自动启动,如果在最后一次重启后,您的应用程序工作正常,您可以放心并专注于编码:)
就是这样,伙计们!我希望在这一切之后,您的系统能够正常工作,如果你们有任何问题,请在这里评论,我会尽力提供帮助。
呀!
*这篇文章最初是我在 JetBrains 问题轨道上发表的无法在 Linux 中输入死键