【问题标题】:Use `hyper` key in Gnome shortcuts在 Gnome 快捷方式中使用 `hyper` 键
【发布时间】:2022-06-26 18:34:04
【问题描述】:

我正在尝试在 Gnome 中使用涉及超级键的快捷方式。我可以成功添加它们,如图所示:

我的超级密钥通过setxkbmap -option "caps:hyper"从大写锁定重新映射。

Hyper 在例如 Emacs 中可以正常工作。 (当我按下 Caps-Lock-A 时,Emacs 会显示 H-a is undefined。)

但是当我按下 Caps-Lock-A 时,快捷方式没有被执行。 (例如,在终端中,它只是插入字母a。)

如何在 Gnome 快捷方式中支持 hyper?(或者以另一种方式涉及大写锁定但未重新映射到 super 的快捷方式,因为我想要单独的 super 和 caps-lock 快捷方式。)

【问题讨论】:

  • 我也有同样的问题。在 Tweaks 程序中将 Caps 映射到 Hyper。当我按 Caps 时,xev 正确报告 Hyper_L 键。但是 Gnome 似乎可以像处理 Super 一样处理 Hyper。当我在 Gnome 设置中定义快捷方式并按 Caps+X 时,Gnome 将其识别为 Super+X... 非常令人失望。但是只按 Caps 不会像 Super 键那样打开 Activity 菜单。所以在这方面至少处理方式不同……

标签: keyboard-shortcuts gnome gnome-shell


【解决方案1】:

我找到了一个解决我自己的 Hyper 密钥问题的解决方案,也许这个解决方案也适合你(如果你使用 Xorg。我猜这个解决方案不适用于 Wayland...):

首先我在调整程序中将 Caps 映射到 Hyper:

但是当我在 Gnome 设置中添加快捷方式时,快捷方式被识别为 Super 而不是 Hyper。问题似乎是Super和Hyper都映射到xmodmap中的mod4:

$ xmodmap -pm
xmodmap:  up to 5 keys per modifier, (keycodes in parentheses):

shift       Shift_L (0x32),  Shift_R (0x3e)
lock      
control     Control_L (0x25),  Control_R (0x69)
mod1        Alt_L (0x40),  Meta_L (0xcd)
mod2        Num_Lock (0x4d)
mod3      
mod4        Hyper_L (0x42),  Super_L (0x85),  Super_R (0x86),  Super_L (0xce),  Hyper_L (0xcf)
mod5        ISO_Level3_Shift (0x5c),  Mode_switch (0xcb)

此命令将 Hyper_L 移动到 mod3:

$ xmodmap -e "remove mod4 = Hyper_L" -e "add mod3 = Hyper_L"

将此命令放入$HOME/.xinitrc,以便登录时自动执行。

现在 Hyper 在键盘快捷键设置中可以正确识别,并且快捷键工作正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-10
    相关资源
    最近更新 更多