Какова функция клавиш-модификаторов в xmodmap?
Когда я запускаю 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
в 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
вместо. Это тема, которая слишком велика для этого ответа.