xmodmap
我已阅读以下有关(和)的文档man xmodmap
:
https://wiki.archlinux.org/index.php/xmodmap#Keymap_table
该文档描述了修饰键,以及如何使用以下方法显示修饰键映射xmodmap -pm
:
$ xmodmap -pm
xmodmap: up to 4 keys per modifier, (keycodes in parentheses):
shift Shift_L (0x32), Shift_R (0x3e)
lock Caps_Lock (0x42)
control Control_L (0x25), Control_R (0x69)
mod1 Alt_L (0x40), Meta_L (0xcd)
mod2 Num_Lock (0x94)
mod3
mod4 Super_R (0x86), Super_L (0xce), Hyper_L (0xcf)
mod5 ISO_Level3_Shift (0x5c), ISO_Level3_Shift (0x6c), Mode_switch (0x85), Mode_switch (0xcb)
shift
然而,虽然lock
和control
是不言自明的,但我似乎找不到任何关于其余修饰语含义的参考或解释modN
。
有谁知道?
答案1
交叉回答这篇超级用户帖子
X11 为任何按键提供了 8 个修饰键。您似乎有一个相当传统的设置,其中 shift、control 和 lock 具有明显的映射。mod1
通常代表 Meta 或 Alt,mod2 到 mod5 可用于键盘上的任何其他修饰键,通常标记为 Super 或 Hyper。
通常这些不用于输入字符,而是由应用程序解释 - 例如,在 Emacs 中,我将 Super+TAB 设置为 Meta+TAB 等同于:
(define-key function-key-map (read-kbd-macro "s-<tab>") (read-kbd-macro "ESC TAB"))
如果您希望键盘使用这些修饰符生成字符,那么 xmodmap 的功能还不够强大,您需要研究 setxkbmap。不过,这个话题太大了,无法回答。
答案2
修饰键是可以改变按键效果的键。在 X 中,有 8 个可能的修饰键,如 的输出所示xmodmap -pm
。通常,并非所有这些都分配给一个键,然后该键将充当修饰键。如您所见,shift
分配给左右 Shift 键、lock
Caps Lock 键、control
左右 Ctrl 键等。
然而,虽然 shift、lock 和 control 是不言自明的,但我似乎找不到任何关于其余 modN 修饰符含义的参考或解释。
这些名称只是名称,即,、、、等shift
只是可在 X 中定义的可用修饰符状态的不同标签。按照传统惯例,前三个修饰符分配给、和键,并被赋予一个有意义的名称来引用这些键。其他五个修饰符获得并保留了通用名称()。lock
control
mod1
mod2
ShiftLockControlmodx
所以归根结底,这些只是“标签”。如果您愿意,您可以交换按键分配,甚至可以开始使用mod3
,尽管很少有应用程序知道如何使用它 - 他们无法预见它的用途,因为它通常没有分配给按键,因此无法使用。