如何绑定包含 tab 键的快捷键

如何绑定包含 tab 键的快捷键

我想将 XFCE 终端中的下一个/上一个选项卡快捷键从Ctrl+ PgDn/重新绑定PgUpCtrl+ Tab/ Ctrl+ Shift+ Tab。通过将鼠标悬停在菜单上并按下所需的组合键来交互地编辑或更改快捷键似乎不起作用accels.scm

其他键对此没有问题,只是涉及的快捷键Tab有问题。我猜这些是 GTK 特有的,甚至无法到达应用程序。有办法覆盖它吗?

答案1

您不能使用 Tab 键作为快捷方式,至少在 Xfce 终端中不能。

直接答案

[...] 只是 Tab 键的快捷键有问题。我猜这些是 GTK 特有的,甚至无法到达应用程序。

您的假设是正确的。该限制实际上适用于 GTK+ 应用程序,Xfce Terminal 就是其中之一。而且不仅仅是涉及 Tab 键的快捷键,还有其他几个键,例如 PageUp、PageDown、F10,它们不能单独使用(没有修饰键)。

有办法解决此问题吗?

可能不行,尽管可能存在解决方法。更好的方法是寻找 Tab 键的替代方法,或使用允许该键的其他应用程序。另请参阅以下说明。

贡献者解释

首先,有日期错误 3524报告称“下一个/上一个选项卡的键盘快捷键不起作用”。最相关的评论已在下面引用。

[评论 9:Nick Schermer 2009-10-10 13:49:08 CEST]

如果处理加速器,Xfwm 和终端会使用不同的方式(xfwm 直接来自 x,终端依赖于 gtk)。在 gtk 中被处理为无效加速器,因此要“修复”此问题,终端将在设置加速器之前检查加速器是否有效。因此,从现在起,按下快捷键编辑器中的 不会执行任何操作。

第二,有日期在 Stack Overflow 上发帖询问“PyGTK:允许在 AccelGroup 中使用 Tab”。问题的相关部分已在下面引用。

使用 gtk.AccelGroup 时,任何与 Tab 字符的组合均无效。现在我明白了,UI 导航是使用此键完成的 [...]

通过文档解释

关于“使用此键完成 UI 导航”,GNOME 开发人员文档已在主题中提到了此问题键盘输入如下所述。

键盘导航

[...]Tab是在 GTK+ 和 GNOME 界面中移动的标准键。

此外,使用 Tab 键的快捷键具有专门的功能。

标准导航键

TabShift+Tab 将键盘焦点移动到下一个/上一个控件

Ctrl+TabShift+ Ctrl+Tab 将键盘焦点从封闭的小部件移到下一个/上一个控件,在这种情况下 Tab 单独具有其他功能

Ctrl+TabShift++CtrlTab 键盘焦点移动到下一个/上一个控件组

因此之前的评论现在变得有意义了。

修订答案(2017-04-04)

^I尽管 Tab 键在命令行 shell 中被识别为Tab 补全,它与无法在图形应用程序中使用 Tab 键作为快捷方式最不相关。

为什么 Tab 键不能作为快捷键使用?原因很简单:Tab 键及其组合键被 GTK+ 和 GNOME 保留。

尽管通过 GSettings 的 GNOME 终端允许使用 Tab 键作为快捷方式,但是到目前为止,还没有通过 Xfconf 对 Xfce 终端进行等效的破解。

答案2

我使用实用程序自动键绑定“Tab”快捷键,例如使用 Tab 在 Nemo 文件指挥官的右侧和左侧面板之间切换。

Linux Mint 20 Nemo 4.6.5

应在 AutoKey 中设置为:热键:窗口过滤器:nemo

----- 脚本示例 ---# 将 Tab 键绑定到切换面板(F6 键)

keyboard.send_key("<f6>")
time.sleep(0.1)
keyboard.send_key("Tab")

答案3

这在xfce4-terminal 0.8.9.1 (Xfce 4.14)-编辑中有效.config/xfce4/terminal/accels.scm

(gtk_accel_path "<Actions>/terminal-window/next-tab" "<Primary>Tab")
(gtk_accel_path "<Actions>/terminal-window/prev-tab" "<Primary><Shift>Tab")

相关内容