web-dev-qa-db-fra.com

Comment puis-je échanger Left Meta contre une clé arbitraire (de préférence en utilisant xkb)?

J'essaie de contrer mes "emacs pinky" en mettant des touches dans des endroits plus accessibles. J'ai déjà changé Ctrl pour Caps Lock, ce qui était une évidence, en mettant une commande setxkbmap dans la liste des applications de démarrage.

J'ai décidé que je devrais également déplacer la touche gauche Meta/Super/Windows, que j'ai tendance à utiliser beaucoup et qui n'est pas très confortable pour accéder à mon clavier. La meilleure touche pour faire sa fonction serait celle au-dessus de l'onglet, qui dans les claviers américains fait le ~ symbole (et dans le clavier ES fait les symboles Masculin/Féminin et la barre oblique inverse, et).

this is the key i'd like to swap with the left Meta key

J'ai compris, en regardant /usr/share/X11/xkb/symbols/es, que son code est TLDE:

key <TLDE>  { [ masculine, ordfeminine,    backslash,   backslash ] };

Mais comment puis-je échanger cette clé avec la touche méta gauche ?? Je ne trouve pas le code de cette clé dans xkb, et Je ne sais pas comment je peux faire des swaps pour lesquels il n'y a pas d'option dans /usr/share/X11/xkb/rules/evdev.lst. Son code est LWIN (comme je l'ai vu/usr/share/X11/xkb/symbols/pc):

key <LWIN> {      [ Super_L               ]       };

Si c'était pertinent, j'exécute actuellement XFCE4, mais j'aimerais une solution portable afin que je puisse l'emporter avec moi si je change DE (j'utilise Unity dans d'autres ordinateurs); J'utilise également un clavier espagnol.

Ajouté: Ma configuration actuelle; note J'ai activé les swapcaps, il est activé à partir d'un setxkbmap que j'ai ajouté aux applications de démarrage.

$ setxkbmap -print
xkb_keymap {
    xkb_keycodes  { include "evdev+aliases(qwerty)" };
    xkb_types     { include "complete"  };
    xkb_compat    { include "complete"  };
    xkb_symbols   { include "pc+es+inet(evdev)+ctrl(swapcaps)"  };
    xkb_geometry  { include "pc(pc105)" };
};

Merci!

Un essai raté qui pourrait être proche

J'ai essayé de modifier les dispositions dans x11/xkb.

Dans /usr/share/X11/xkb/symbols/es:

-key <TLDE>        { [ masculine, ordfeminine,    backslash,   backslash ] };
+key <TLDE>        { [ Super_L ] };

Dans /usr/share/X11/xkb/symbols/pc:

-key <LWIN> {      [ Super_L               ]       };    
+key <LWIN> {     [ masculine, ordfeminine,    backslash,   backslash  ] };

Cela n'a fait aucune différence, ils montrent le même comportement.

Une autre idée

Une autre chose à laquelle j'ai pensé est de changer les codes clés dans /usr/share/X11/xkb/keycodes/evdev. Je n'ai pas pu le faire fonctionner cependant.

1
jesusiniesta

en utilisant xmodmap

Je ne voulais pas utiliser xmodmap, mais ... ça fait l'affaire:

  1. xev pour vérifier le code clé et la fonction (pour moi, 49 est masculin-ord, 133 est Super_L).
  2. xmodmap pour échanger leurs fonctions:

    xmodmap -e 'keycode 49 = Super_L'
    xmodmap -e 'keycode 133 = masculine backslash backslash backslash'
    

Notez que cela répond à ma disposition de clavier, vous devez vérifier la vôtre. De plus, maintenant la barre oblique inverse est faite avec Shift au lieu d'Alt-Gr comme avant, mais cela ne m'a pas pris trop de temps pour m'y habituer.

0
jesusiniesta