如何知道什么是超级键?

如何知道什么是超级键?

我有这个xmodmap命令的输出:

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

所以我想知道这里的超级关键是什么?问题是,当我尝试映射超级键时,这里我假设mod4使用守护程序windows button left的组合键sxhkd,它似乎不起作用,例如,映射到 open firefox,没有效果。

编辑:我试图windows left button在键盘上使用sxhkdarchlinux 上的守护进程来快速映射一些命令,正如评论中所讨论的,即使我在keycod 133 mod4 = Super_L.Xmodmap使用in 来映射例如打开 firefox:mod4.config/sxhkd/sxhkdrc

mod4 + f
   firefox

这似乎不起作用,按windows lef buttonf没有调用 Firefox 或我,只是ffffff在终端中打印出一系列。

答案1

回答你的第一个问题“我想知道这里的超级键是什么”:xmodmap无法说出键码是什么,你必须使用命令xev,检查谢夫曼了解更多信息。

从终端调用xev,然后点击“超级键”,然后查看终端中的输出信息。它将是这样的:

KeyRelease event, serial 37, synthetic NO, window 0x4000001,
    root 0x75, subw 0x0, time 2014984514, (70,-18), root:(82,60),
    state 0x50, keycode 115 (keysym 0xffeb, Super_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

xev往往会生成大量输出,尤其是当您将鼠标移到终端窗口上时。您可能需要向后滚动一段时间才能找到您要查找的输出。在前面的输出中,我们看到 super_L 的键码为 115。

要检查键盘映射,xmodmap可以使用该实用程序来实现此目的。从终端调用xmodmap,这将打印类似于您问题中提供的表格的虚拟或抽象修饰符(或 mod)。

教程:

在表格中提供了问题文本,似乎mod3没有使用。 Windows 超级键已映射,mod4而 Hyper_R(或 F8)根本未映射。

假设我们想要映射Hyper_Rmod3.我们执行以下操作:

  • xev从终端呼叫>> 按Hyper_R。这将显示以下内容:

    KeyRelease 事件,序列 37,合成 NO,窗口 0x4000001,根 0x75,subw 0x0,时间 2188213888,(74,-12),根:(687,178),状态 0x10,键码 74(keysym 0xffc5,F8),same_screen YES,XLookupString给出 0 个字节:XFilterEvent 返回:False

  • 打开gedit并输入以下内容:

    清除 mod3 键码 74 = Hyper_R 添加 mod3 =Hyper_R

  • 将此信息保存为您的主目录中的隐藏文件。命名该文件.Xmodmap

  • 注销,然后登录。然后打开终端并调用xmodmap。您必须看到 mod3 maped Hyper_R,对于任何其他映射目的,依此类推。对于更复杂的映射目的,您可以考虑其他一些可能更有帮助的工具,请参阅这里

记住:

xmodmap无法设置键来键入组合键,例如CTRL+W

xmodmap无法设置运行脚本的键。

xmodmap密钥无法根据当前应用程序更改密钥。

相关内容