Qual é a função das teclas modificadoras no xmodmap?

6

Quando eu executo o xmodmap, eu obtenho algo assim

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)

Eu recebo os grupos de turno e controle. Mas quais são os outros mod1, mod2, mod3, mod4 para?

Parece que você só pode usar dois modificadores da seguinte maneira:

keysym <keysymname> = <key> <shift+key> <mode_switch+key> <mode_switch+shift+key>

Por que não posso definir algo como <mod4+key> ?

    
por user128063 25.03.2016 / 16:28

1 resposta

2

O X11 fornece 8 modificadores para qualquer tecla pressionada. Você parece ter um conjunto bastante convencional, em que shift , control e lock têm os mapeamentos óbvios.

mod1 geralmente representa Meta ou Alt e mod2 to mod5 estão disponíveis para quaisquer outras teclas modificadoras que seu teclado tenha, muitas vezes rotuladas Super ou Hyper . Geralmente estes não são usados para inserir caracteres, mas são interpretados por aplicações - por exemplo, no Emacs, eu faço Super + TAB equivalente a Meta + TAB :

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

Se você quer que seu teclado gere caracteres usando esses modificadores, então xmodmap não é realmente capaz o suficiente, e você vai querer olhar para setxkbmap . Esse é um tópico que é grande demais para essa resposta, no entanto.

    
por 22.11.2016 / 18:45