Como mapear as teclas [Alt] + [hjkl] para as teclas de seta?

0

Eu sei mapear as chaves [AltGr] + [h | j | k | l] para as teclas de seta, como:

[AltGr]+[h] ... [Left]  
[AltGr]+[j] ... [Down]  
[AltGr]+[k] ... [Up]  
[AltGr]+[l] ... [Right]  

[AltGr]+[ö] ... [Home]  
[AltGr]+[ä] ... [End]  

Isso é possível em duas etapas:

Passo 1) Encontre os códigos de teclas:

$ xmodmap -pke | grep "h H h H"  
keycode  43 = h H h H hstroke Hstroke hstroke  
$ xmodmap -pke | grep "j J j J"  
keycode  44 = j J j J dead_belowdot dead_abovedot dead_belowdot  
$ xmodmap -pke | grep "k K k K"  
keycode  45 = k K k K kra ampersand kra  
$ xmodmap -pke | grep "l L l L"  
keycode  46 = l L l L lstroke Lstroke lstroke  
$
$ xmodmap -pke | grep "odiaeresis" ## search for the diaresis 'ö'
keycode  47 = odiaeresis Odiaeresis odiaeresis Odiaeresis dead_doubleacute dead_belowdot dead_doubleacute
$ xmodmap -pke | grep "adiaeresis" ## search for the diaresis 'ä'
keycode  48 = adiaeresis Adiaeresis adiaeresis Adiaeresis dead_circumflex dead_caron dead_circumflex
$ ## as we can see the keycodes are: h=43, j=44, k=45, l=46, ö=47, ä=48  

De acordo com ubuntuusers.de/Xmodmap/ a sintaxe para remapear as chaves é a seguinte:

$ xmodmap -e "keycode <keycode> = <key1> <key2> <key3> <key4> <key5> <key6>"

<key1> ...             <Key>
<key2> ...       <Shift-Key>
<key3> ...         <Alt-Key>
<key4> ...   <Shift-Alt-Key>
<key5> ...       <AltGr-Key> (at least by Unity)
<key6> ... <Shift-AltGr-Key> (at least by Unity)

Passo 2) Mapeie as chaves para o seu desejo:

$ ##                       1 2 3        4        5      6
$ xmodmap -e "keycode 43 = h H NoSymbol NoSymbol Left   NoSymbol"  
$ xmodmap -e "keycode 44 = j J NoSymbol NoSymbol Down   NoSymbol"  
$ xmodmap -e "keycode 45 = k K NoSymbol NoSymbol Up     NoSymbol"  
$ xmodmap -e "keycode 46 = l L NoSymbol NoSymbol Right  NoSymbol"  
$ ##                       1          2          3        4        5
$ xmodmap -e "keycode 47 = odiaeresis Odiaeresis NoSymbol NoSymbol Home"
$ xmodmap -e "keycode 48 = adiaeresis Adiaeresis NoSymbol NoSymbol End"

Problema: No entanto, quando tento mapeá-lo para [Alt] em vez de [AltGr], nada acontece, ou seja, nem meu cursor se move de acordo com a direção desejada nem nenhum caractere é impresso.

$ ##                       1 2 3     4        5        6
$ xmodmap -e "keycode 43 = h H Left  NoSymbol NoSymbol NoSymbol"  
$ xmodmap -e "keycode 44 = j J Down  NoSymbol NoSymbol NoSymbol"  
$ xmodmap -e "keycode 45 = k K Up    NoSymbol NoSymbol NoSymbol"  
$ xmodmap -e "keycode 46 = l L Right NoSymbol NoSymbol NoSymbol"  

A razão principal para remapear essas teclas é evitar mover a mão direita sempre para as teclas de seta enquanto trabalha no editor de texto ATOM. Então, eu quero ser capaz de navegar no átomo como no vim ou no ranger com o hjkl.

Agradecemos antecipadamente pela ajuda!

    
por PatrickSteiner 17.04.2018 / 11:33

1 resposta

0

Atualmente, estou usando o xubuntu 16.0.4 e encontrei um problema semelhante antes. Minha solução foi executar primeiro abaixo antes de qualquer comando xmodmap :

setxkbmap -layout us -variant altgr-intl -option nodeadkeys

Você pode precisar ajustar os parâmetros para se adequar ao layout do seu teclado.

    
por Lok Lam Cheng 19.04.2018 / 16:28