web-dev-qa-db-fra.com

Comment mapper <modifier> + hjkl à la fonctionnalité de touche de direction?

Je me suis tellement habitué au vjmh hjkl pour m'être déplacé récemment et je me trouve à vouloir les utiliser juste après avoir quitté Vim.

Quel serait le meilleur moyen de mapper fn + h/j/k/l à gauche/bas/haut/droite?

edit: any <modifier> + h/j/k/l serait satisfaisant pour autant que cela ne soit pas en conflit avec d'autres raccourcis clavier.

2
Daniel Que

Essayez-les, aucune garantie si cela va casser quoi que ce soit, mais j'espère que ça ne le fera pas:

  1. si vous regardez le mappage par xmodmap -pke, vous voyez qu'il a quatre colonnes de caractères mappées sur chaque touche, pour différentes modifications. L'ordre pour ces modifications est comme

    keycode <x> = <1> <2> <3> <4>

    <1> <key>

    <2> <shift-key>

    <3> <"Mode_switch"-key>

    <4> <shift-"Mode_switch"-key>

  2. "Mode_switch", pas tout à fait sûr, mais je suppose qu'il ne correspond à rien par défaut. En fait, vous pouvez voir le code de la clé avec xmodmap et le rechercher quelque part au bas des résultats pour déterminer à quelle clé appartient ce code. Ce que j'ai fait, c'est que je l'ai réassignée sur une autre clé, par exemple Super_L, qui est la super clé lefp, avec:

    xmodmap -e "keysym Super_L = Mode_switch"
    

    ou vous pouvez mettre votre propre choix à la place de Super_L

  3. A présent, éditez la colonne des quatre clés à réaffecter. Trouvons-les dans votre fichier xmodmap:

    xmodmap -pke | grep h
    

    parmi la sortie devrait être la ligne qui dit

    keycode 43 = h H h H
    

    éditez-le pour qu'il soit comme

    keycode 43 = h H Left H
    

    pour ce faire, utilisez la commande

    xmodmap -e "keycode 43 = h H Left H"
    

    et puis essayez si cela a fonctionné.

  4. Faites cela pour le reste des clés que vous souhaitez mapper.

Je pense que cela n’a rien de grave, tant que vous pourrez revenir en arrière et rééditer les keycodes en leurs originaux. La seule partie effrayante était où j'ai mappé "Mode_switch" à Super_L. (Edit: ma super clé a en fait été désactivée, ce qui m'a permis de retourner au travail en inversant l'attribution, c'est xmodmap -e "keysym Mode_switch = Super_L". Mappez une clé dont vous savez qu'elle ne manquerait pas à Mode_switch)

3
arsaKasra

Bien que je sympathise avec vous (j’ai un clavier Happy Hacking et aimerais avoir la même disposition sur mon ordinateur portable, avec Fn +; '[/ pour gauche à droite, respectivement), la touche de fonction Fn est presque toujours implémenté entièrement dans le matériel, et il n’ya aucun moyen de le lier en tant que clé de modification dans le logiciel.

3
dobey

Depuis quelque temps, xmodmap est déprécié! pour obtenir un réglage système, vous devez utiliser xkb. Donc, éditez le fichier de langue dans /usr/share/X11/xkb/symbols/ pour y ajouter vos modifications.

voir https://askubuntu.com/a/898462/34298

1
rubo77

Si un modificateur fera l'affaire, alors le travail suivant fonctionnera pour AltGr en utilisant xmodmap.

Tout d’abord, recherchez les codes de clé pour h,j,k et l. Cela peut être fait en exécutant xev in terminal, puis en appuyant sur les touches respectives. Pour moi, le code d'activation de h est 43. Pour mapper ce plus AltGr à left, utilisez la commande

xmodmap -e "keycode 43 = h H NoSymbol NoSymbol Left"

Répétez l'opération pour les touches restantes et vous aurez terminé :) Pour configurer le démarrage, voir cette Q & R .

1
Rasmus