6

Когда я запускаю 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 ответ1

2

X11 предоставляет 8 модификаторов для любого нажатия клавиши. Кажется, у вас довольно обычный набор, в котором shift , control и lock имеют очевидные отображения.

mod1 обычно представляет Meta или Alt, и mod2 к mod5 доступны для любых других модифицирующих клавиш на вашей клавиатуре, часто меченых Супер или Hyper. Обычно они не используются для ввода символов, но интерпретируются приложениями - например, в Emacs я делаю Super+TAB эквивалентным Meta+TAB:

(define-key function-key-map (read-kbd-macro "s-<tab>") (read-kbd-macro "ESC TAB"))

Если вы хотите, чтобы ваша клавиатура генерировала символы с использованием этих модификаторов, то xmodmap не обладает достаточной способностью, и вместо этого вы захотите взглянуть на setxkbmap . Это тема, которая слишком велика для этого ответа.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .