终结者:切换键盘布局后快捷键不起作用

终结者:切换键盘布局后快捷键不起作用

我在使用终结者时遇到了一个奇怪的问题:

键盘快捷键适用于默认键盘布局(就我而言是德语)。

但是,当我使用 Super+Space 切换键盘布局(为波兰语或英语-美国)时,它们不再起作用。

相反,例如++Ctrl将Return发送到终端。ShiftO

唯一有效的快捷键似乎是F11全屏和++Ctrl新标签。ShiftT

该问题似乎与功能有关,而不是组合键:

我重新映射了水平分割F11Ctrl+ Shift+ T,但它仍然不起作用,而将新选项卡重新映射到Ctrl+ Shift+后O,它仍然有效。

我正在使用 Ubuntu GNOME 16.4。其他应用程序中的键盘快捷键运行正常。


编辑:尝试将默认键盘布局切换为波兰语。

现在快捷方式适用于波兰语布局,但不适用于德语布局,因此无论实际布局如何,这都是默认/非默认的问题。

答案1

这也可能是因为您的德语键盘的物理布局与美国或波兰键盘不同(例如,在北欧和德国键盘上,美国软件布局中的?符号是通过按住 Shift 并按 - 符号来输入的。

所有区域键盘都有不同的布局(修饰键、功能键、光标键、系统命令键和数字键除外)

以下是美国键盘布局的示例以下是美国键盘布局的示例

答案2

首先,我应该指出,这种行为不仅适用于“终结者”,也不仅适用于“Ubuntu”!当键盘布局更改时,我发现 Windows 甚至 Mac 上的快捷键都不起作用!所以,恕我直言,这不是一个错误!

我们必须更好地理解键盘快捷键(例如Ctrl+)的F作用!这Ctrl被称为修饰符F被称为非修饰语钥匙。

当它们被推送到软件中时,它们会调用一个信号。Linux 终端使用 POSIX 可靠信号,有时是 POSIX 实时信号。您可以通过man 7 signal在终端中输入来了解更多信息。Terminator 默认在 Linux 上使用 GNU 样式信号。

终结者是一个终端模拟器这意味着它是一款为您提供终端功能和一些附加功能的软件。与许多其他软件一样,您可以通过修改其配置文件(通常可以在 找到)来配置 Terminator 的行为方式~/.config/terminator/config

现在,如果你看一下终结者帮助页面配置文件您可以看到此文件的结构。有一个特定选项,try_posix_regex将其设置为True使终止器首先尝试 POSIX 样式。尝试在 下添加以下行global_config

try_posix_regex = True

以下是关于该选项的解释:

try_posix_regexp (boolean)
          If  set  to  True, URL matching regexps will try to use POSIX style first, and fall
          back on GNU style on failure.  If you are on Linux but URL matches don't work,  try
          setting this to True.  If you are not on Linux, but you get VTE warnings on startup
          saying "Error compiling regular expression", set this  to  False  to  silence  them
          (they are otherwise harmless).  Default value: False on Linux, True otherwise.

我还没有完全测试过,但它可能会解决这个问题。我仍在调查按住修饰键(例如)是否会以Ctrl某种方式发送有关键盘布局的信息。如果是这样,更改布局将修改信号发送,因此终端、终结器或其他软件可能无法正确解释它。

答案3

发生这种情况是因为IBus Emojier 的 IBus 表情符号实用程序,它拦截Control++ ShiftE如手册页 ( man ibus-emoji) 中所述:

...
KEYBOARD OPERATIONS
    Control-Shift-e
        Launch IBus Emojier. The shortcut key can be customized by ibus-setup (1).
...

正如手册页所述:快捷键可以自定义ibus 设置。因此,在终端窗口中,人们可以ibus-setup通过图形对话框来更改快捷方式。

在下面的例子中,我已将Control++Shift快捷E键替换为Shift++Super快捷EUbuntu盒子。

在此处输入图片描述

答案4

我刚刚遇到了同样的错误。修复方法很简单 - 清除终结器并重新安装。我做了什么:

sudo apt purge terminator

重启。

sudo apt install terminator

即使我的配置已保存,快捷方式也可以再次发挥作用。

PS:是的,我知道,无需重新启动。

相关内容