当我运行 xmodmap 时,我得到了类似这样的信息
shift shift_l (0x32), shift_r (0x3e)
lock
control control_l (0x25), control_l (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)
我得到了移位和控制组。但是其他 mod1、mod2、mod3、mod4 是做什么用的?
无论如何,您似乎只能使用如下两个修饰符:
keysym <keysymname> = <key> <shift+key> <mode_switch+key> <mode_switch+shift+key>
为什么我无法设置某些内容<mod4+key>
?
答案1
X11 为任何按键提供了 8 个修饰键。您似乎有一个相当传统的设置,其中shift
和control
具有lock
明显的映射。
mod1
通常代表Meta或Alt,而mod2
to 则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
一下。不过,这个话题太大了,不适合这个答案。