我有这个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
在键盘上使用sxhkd
archlinux 上的守护进程来快速映射一些命令,正如评论中所讨论的,即使我在keycod 133 mod4 = Super_L
中.Xmodmap
使用in 来映射例如打开 firefox:mod4
.config/sxhkd/sxhkdrc
mod4 + f
firefox
这似乎不起作用,按windows lef button
并f
没有调用 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_R
到mod3
.我们执行以下操作:
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
密钥无法根据当前应用程序更改密钥。