34 votes

Mapping Super+hjkl aux touches fléchées sous X

J'essaie d'établir une carte :

Super+h -> Left
Super+j -> Down
Super+k -> Up
Super+l -> Right

Globalement sous X. L'idée est que je ne veux pas quitter ma ligne d'accueil si souvent pour utiliser les touches fléchées, donc je vais utiliser le Super modificateur + hjkl pour émuler les touches fléchées sous X. Y a-t-il un moyen de faire cela ?

Une chose que j'ai essayée est xbindkeys + xte en utilisant cette configuration :

"xte 'keydown Up' 'keyup Up'"
  Mod4+k

"xte 'keydown Down' 'keyup Down'"
  Mod4+j

"xte 'keydown Left' 'keyup Left'"
  Mod4+h

"xte 'keydown Right' 'keyup Right'"
  Mod4+l

mais il semble y avoir un délai important entre le moment où j'appuie sur la touche et le moment où je constate un résultat, et la plupart du temps, il ne se passe rien du tout.

Existe-t-il une manière plus élégante de procéder qui fonctionne réellement sans délai ?

2voto

sgtpep Points 276

Enfin, il semble que j'ai trouvé la solution qui fonctionne avec tous les modificateurs (Ctrl+, Shift+, Ctrl+Shift+) et Sublime Text 2.

Toute la gloire revient à ce bijou de configuration que j'ai trouvé récemment http://www.spinics.net/lists/xorg/msg35931.html . Il décrit des flèches ijkl, mais il peut être facilement modifié pour une navigation hjkl. Vous devez mettre à jour votre fichier de disposition de clavier /usr/share/X11/xkb/symbols/* (personnellement, j'utilise /usr/share/X11/xkb/symbols/typo, que j'inclus dans ma disposition de clavier avec l'option Xkb "misc:typo", donc cela fonctionne pour toute disposition de clavier). La configuration suppose que la touche modificatrice envoie ISO_Level3_Shift (il existe de nombreuses façons de lier Super ou Alt à ISO_Level3_Shift).

Les définitions des clés devraient ressembler à (utilisez NoSymbol si vous modifiez ../symbols/typo) :

key <AC07> {    
    type="MOD5_NAV",
    [NoSymbol, NoSymbol, Down, Down],   
    actions[Group1] = [NoAction(), NoAction(), RedirectKey(key=<DOWN>, clearmods=ISO_Level3_Shift)]
};

Vous devez également éditer /usr/share/X11/types/basic et déclarer le type "MOD5_NAV" :

type "MOD5_NAV" {
    modifiers = Shift+Mod5;
    map[None] = level1;
    map[Shift] = level2;
    map[Mod5] = level3;
    map[Mod5+Shift] = level3;
    level_name[Level1] = "Base";
    level_name[Level2] = "Caps";
    level_name[Level3] = "Arrows";
};

Pour Sublime Text 2, la solution est plus délicate. Comme mentionné plus haut, Sublime Text 2 lit les codes clés directement depuis l'appareil et ignore donc certaines fonctionnalités de Xkb (et l'astuce de Xkb avec les flèches n'a aucun effet). Il existe un projet presque abandonné mais toujours en cours, Gizmo Daemon. http://gizmod.sourceforge.net/ . Après quelques efforts et une recherche sur Internet, j'ai réussi à le compiler sur ma Debian Wheezy. Puis j'ai créé ce gizmod script et l'ai placé dans ~/.gizmod/modules.d/010-KeyboardViMode-SublimeText2.py http://pastebin.com/HNQgGEwD

P.S. Sous Linux, KeyboardRemap4MacBook me manque parfois. Cette grande paix du logiciel OS X peut activer cette navigation (et beaucoup d'autres choses) avec juste quelques cases à cocher.

1voto

Chu-Saing Lai Points 171

Je suis un utilisateur de HHKB sur Debian/Ubuntu et cette solution fonctionne pour moi.

utiliser Left Ctrl à la touche active.

$ vi ~/.Xmodmap
keycode 37 = ISO_Level3_Shift

Ajoutez ce code sous // End alphanumeric section dans le base bloc en /usr/share/X11/xkb/symboles/us

//hjkl
//Ctrl + hjkl
key <AC06> {    [   h,  H,  Left    ]   };
key <AC07> {    [   j,  J,  Down    ]   };
key <AC08> {    [   k,  K,  Up      ]   };
key <AC09> {    [   l,  L,  Right   ]   };

Maintenant, vous devriez être en mesure d'utiliser les touches gauche, bas, haut et droite avec Ctrl + h , j , k , l .

Au fait, si vous avez utilisé pentadactyle sur Firefox, vous pouvez ajouter ce code dans ~/.pentadactylrc

map -modes=i,c <C-down> <down>
map -modes=i,c <C-up> <up>

1voto

Chu-Saing Lai Points 171

J'ai trouvé autokey et c'est mieux pour la cartographie.

Je crois que le lien liaison des touches - Émuler un clavier sur un ordinateur portable - Ask Ubuntu pourrait vous aider.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X