Les changements mentionnés ci-dessus dans /usr/share/X11/xkb/symboles/us ne travaillent PAS pour moi :
Erreur de chargement de la nouvelle description du clavier
Mais après avoir parcouru de nombreux howtos contradictoires, j'ai trouvé une solution, qui associe la super touche gauche (touche Windows gauche / Mod4) en combinaison avec hjkl à Gauche, Bas, Haut, Droite. Il s'agit d'un réglage à l'échelle du système.
Ajouter ce bloc à la fin de la première section (juste avant };
) de votre /usr/share/X11/xkb/symboles/us :
//hjkl
//AltGr + hjkl
key <AC06> { [ h, H, Left ] };
key <AC07> { [ j, J, Down ] };
key <AC08> { [ k, K, Up ] };
key <AC09> { [ l, L, Right ] };
//Super_L -> Alt Gr
key <LWIN> { [ ISO_Level3_Shift ] }; //see below!
La première ligne de touches associe AltGr+h à Gauche.
La dernière ligne de touche fait en sorte que la super touche gauche se comporte comme AltGr.
Voilà :
Super + h -> Gauche
Super + j -> Down
Super + k -> Up
Super + l -> Droite
Afin d'appliquer les nouveaux paramètres, exécutez setxkbmap ou redémarrez votre système.
Important : Cela désactive évidemment la super touche, donc si vous utilisez réellement votre super touche à d'autres fins (c'est-à-dire déplacer une fenêtre vers un autre espace de travail), vous ne devriez pas la remapper comme cela.
Afin d'utiliser le verrouillage des majuscules au lieu de Super, changez la dernière ligne de touche par :
key <CAPS> { [ ISO_Level3_Shift ] };
Voici la première section complète de mon fichier de configuration :
default
partial alphanumeric_keys modifier_keys
xkb_symbols "basic" {
name[Group1]= "English (US)";
// Alphanumeric section
key <TLDE> { [ grave, asciitilde ] };
key <AE01> { [ 1, exclam ] };
key <AE02> { [ 2, at ] };
key <AE03> { [ 3, numbersign ] };
key <AE04> { [ 4, dollar ] };
key <AE05> { [ 5, percent ] };
key <AE06> { [ 6, asciicircum ] };
key <AE07> { [ 7, ampersand ] };
key <AE08> { [ 8, asterisk ] };
key <AE09> { [ 9, parenleft ] };
key <AE10> { [ 0, parenright ] };
key <AE11> { [ minus, underscore ] };
key <AE12> { [ equal, plus ] };
key <AD01> { [ q, Q ] };
key <AD02> { [ w, W ] };
key <AD03> { [ e, E ] };
key <AD04> { [ r, R ] };
key <AD05> { [ t, T ] };
key <AD06> { [ y, Y ] };
key <AD07> { [ u, U ] };
key <AD08> { [ i, I ] };
key <AD09> { [ o, O ] };
key <AD10> { [ p, P ] };
key <AD11> { [ bracketleft, braceleft ] };
key <AD12> { [ bracketright, braceright ] };
key <AC01> { [ a, A ] };
key <AC02> { [ s, S ] };
key <AC03> { [ d, D ] };
key <AC04> { [ f, F ] };
key <AC05> { [ g, G ] };
key <AC06> { [ h, H ] };
key <AC07> { [ j, J ] };
key <AC08> { [ k, K ] };
key <AC09> { [ l, L ] };
key <AC10> { [ semicolon, colon ] };
key <AC11> { [ apostrophe, quotedbl ] };
key <AB01> { [ z, Z ] };
key <AB02> { [ x, X ] };
key <AB03> { [ c, C ] };
key <AB04> { [ v, V ] };
key <AB05> { [ b, B ] };
key <AB06> { [ n, N ] };
key <AB07> { [ m, M ] };
key <AB08> { [ comma, less ] };
key <AB09> { [ period, greater ] };
key <AB10> { [ slash, question ] };
key <BKSL> { [ backslash, bar ] };
// End alphanumeric section
//hjkl
//AltGr + hjkl
key <AC06> { [ h, H, Left ] };
key <AC07> { [ j, J, Down ] };
key <AC08> { [ k, K, Up ] };
key <AC09> { [ l, L, Right ] };
//Super_L -> Alt Gr
key <LWIN> { [ ISO_Level3_Shift ] };
};
J'espère que cela aidera quelqu'un d'autre...
Si quelqu'un a une meilleure solution, faites-le moi savoir.
Edit : Testé sur Fedora.