web-dev-qa-db-fra.com

Comment mapper les touches [Alt] + [hjkl] sur les touches fléchées?

Je sais comment mapper les touches [AltGr] + [h | j | k | l] aux touches fléchées, comme:

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

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

Ceci est possible en deux étapes:

Étape 1) Recherchez les codes de clé:

$ 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  

Selon buntuusers.de/Xmodmap/ , la syntaxe pour remapper les clés est la suivante:

$ 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)

Étape 2) Mappez les clés de votre désir:

$ ##                       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"

Problème: Cependant, lorsque j'essaie de le mapper sur [Alt] au lieu de [AltGr], rien ne se passe, c'est-à-dire que ni mon curseur ne se déplace selon la direction souhaitée, ni aucun caractère ne soit imprimé.

$ ##                       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"  

La raison principale pour remapper ces touches est d'éviter de déplacer ma main droite toujours vers les touches de direction lorsque je travaille dans l'éditeur de texte ATOM. Je veux donc pouvoir naviguer dans atom comme dans vim ou ranger avec hjkl.

Merci d'avance pour votre aide!

1
PatrickSteiner

J'utilise actuellement xubuntu 16.0.4 et j'ai déjà rencontré un problème similaire. Ma solution était d'exécuter ci-dessous avant toutes les commandes xmodmap:

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

Vous devrez peut-être ajuster les paramètres pour qu'ils correspondent à la disposition de votre clavier.

1
Lok Lam Cheng