Como encontrar os códigos-chave brutos para xkb? [duplicado]

1

À primeira vista, parece que / usr / share / X11 / xkb / keycodes / contém o mapeamento de códigos-chave brutos reportados pelo dispositivo , e o comando 'showkey --scancodes' pode retornar o < em> scancode . É fácil pensar que são a mesma coisa.

Mas eles são evidentemente diferentes. showkeys -scancodes retorna de forma confiável o código-chave do Linux, como em Tabela de códigos-chave do Linux convertido em hexadecimal; enquanto 'raw keycode' em xkb se referem são sempre diferentes da tabela.

Pegue a chave 1 por exemplo:

  • showkey --scancodes retorna 0x02 como o código de tecla de 1
  • no xorg, o nome symbblic é <AE01> , que tem 10 como código-chave bruto, certamente não 0x02 .

    $ grep AE01 /usr/share/X11/xkb/keycodes/evdev 
    &ltAE01> = 10;

Assim, com o propósito de configurar o xkb, como encontrar o código-chave bruto para qualquer chave, dado que showkey --scancodes não é adequado?

    
por Peer Gynt 31.07.2017 / 04:07

1 resposta

2

O programa xev gerará os códigos de teclas esperados. Para o seu exemplo de 1 :

KeyPress event, serial 37, synthetic NO, window 0x600001,
    root 0xd4, subw 0x0, time 6931965, (284,-10), root:(285,560),
    state 0x0, keycode 10 (keysym 0x31, 1), same_screen YES,
    XLookupString gives 1 bytes: (31) "1"
    XmbLookupString gives 1 bytes: (31) "1"
    XFilterEvent returns: False

KeyRelease event, serial 37, synthetic NO, window 0x600001,
    root 0xd4, subw 0x0, time 6932164, (284,-10), root:(285,560),
    state 0x0, keycode 10 (keysym 0x31, 1), same_screen YES,
    XLookupString gives 1 bytes: (31) "1"
    XFilterEvent returns: False
    
por 31.07.2017 / 08:24

Tags