Remapeando XF86_Back / Forward para Control / Alt em X

0

Gostaria de religar as teclas XF86_Back e forward em X para controlar e alt respectivamente.

No entanto, parece que a execução

xmodmap -e "keycode 167 =Alt_L"
xmodmap -e "keycode 166 =Control_L"

não está me dando o comportamento desejado - não consigo digitar BACK + a para chegar ao início da linha em um terminal, por exemplo, mesmo que xev esteja mostrando como uma recuperação correta.

EDIT:
A saída do xev (com meus comentários como // comentários) - alt funciona, o controle não

// BACk KeyPress evento, serial 29, sintético NO, janela 0x2600001,     raiz 0x2bd, subw 0x0, hora 3547970265, (983,501), raiz: (984,516),     estado 0x10, keycode 166 (keysym 0xffe3, Control_L), same_screen YES,     XKeysymToKeycode retorna o código-chave: 37     XLookupString dá 0 bytes:     XmbLookupString fornece 0 bytes:     XFilterEvent retorna: False

Evento KeyRelease, serial 32, NO sintético, janela 0x2600001,     raiz 0x2bd, subw 0x0, hora 3547970385, (983,501), raiz: (984,516),     estado 0x10, keycode 166 (keysym 0xffe3, Control_L), same_screen YES,     XKeysymToKeycode retorna o código-chave: 37     XLookupString dá 0 bytes:     XFilterEvent retorna: False

// FORWARD KeyPress evento, serial 32, sintético NO, janela 0x2600001,     raiz 0x2bd, subw 0x0, hora 3547974553, (983,501), raiz: (984,516),     estado 0x10, keycode 167 (keysym 0xffe9, Alt_L), same_screen YES,     XKeysymToKeycode retorna o código-chave: 64     XLookupString dá 0 bytes:     XmbLookupString fornece 0 bytes:     XFilterEvent retorna: False

Evento KeyRelease, serial 32, NO sintético, janela 0x2600001,     raiz 0x2bd, subw 0x0, hora 3547974713, (983,501), raiz: (984,516),     estado 0x18, keycode 167 (keysym 0xffe9, Alt_L), same_screen YES,     XKeysymToKeycode retorna o código-chave: 64     XLookupString dá 0 bytes:     XFilterEvent retorna: False

    
por Squidly 13.11.2013 / 16:43

1 resposta

1

Certifique-se de que o keysym do Control_L esteja ligado ao modificador "Control":

keycode 166 = Control_L
add Control = Control_L

Para verificar em xev , quando você soltar a tecla, o state informado precisará ter o bit 0x4 definido - ou seja, se você tiver NumLock ativado, quando pressionar a nova tecla "Control", deverá ter state 0x10 , e quando você liberá-lo, você deve obter state 0x14 . Da mesma forma, para a nova chave "Alt", que deve mudar de 0x10 para 0x18 (também assumindo que NumLock está ativo - essa é a parte 0x10 ).

    
por 09.01.2014 / 16:08