web-dev-qa-db-fra.com

Utilisation de setxkbmap pour un remappage simple (similaire à xmodmap)

J'ai eu des problèmes après avoir remappé le clavier avec xmodmap: les paramètres sont réinitialisés de manière aléatoire 2 à 20 minutes après l'application. Googlé il mais aucune aide: quelque chose les réinitialise, mais toutes les mentions s'appliquent à xfce, alors que je suis sous 14.04 Ubuntu avec l'unité.

J'ai vu des phrases telles que "utilise xkb, oublie xmodmap", mais je ne sais toujours pas comment faire cela. C'est soit classifié, soit très compliqué, car la quantité d'informations à ce sujet est considérablement plus petite que pour la méthode xmodmap.

Voici ma liste de personnalisations:

xmodmap -e "keycode 84 = Down"
xmodmap -e "keycode 79 = Home"
xmodmap -e "keycode 80 = Up"
xmodmap -e "keycode 83 = Left"
xmodmap -e "keycode 85 = Right"
xmodmap -e "keycode 87 = End"
xmodmap -e "keycode 90 = Insert"
xmodmap -e "keycode 91 = Delete"
xmodmap -e "keycode 89 = Next"
xmodmap -e "keycode 81 = Prior"

où les codes clés sont les clés correspondantes sur le pavé numérique, avec numlock = off (en gros, je remplace KP_Del par Delete, KP_Home avec Home etc. - ne demandez pas pourquoi))

Quelqu'un peut-il aider à trouver un moyen de le faire en utilisant xkb - au moins une des lignes? Et où trouver les "noms" de clés pour les autres afin que je puisse faire le reste par exemple?

13
Den Rimus

Vous pouvez suivre l’idée générale vue dans ma réponse à un problème similaire ; si vous voulez toujours changer de mise en page (bien que toujours assez brisé ), vous devriez définir une nouvelle mise en page ou une variante .

Notez que le modèle à copier et à modifier pour l'édition d'un clavier est un peu difficile à trouver. Dans mon clavier, par exemple, la géométrie est "pc105"; ceci est défini dans /usr/share/X11/xkb/symbols/pc. Si vous examinez cela, il inclut :

[...]
key <SPCE> {        [        space          ]       };

include "srvr_ctrl(fkey2vt)"
include "pc(editing)"
include "keypad(x11)"

key <BKSP> {        [ BackSpace, BackSpace  ]       };
[...]

Le clavier est défini dans le fichier /usr/share/X11/xkb/symbols/keypad

[...] 
default  partial hidden keypad_keys
xkb_symbols "x11" {
   include "keypad(operators)"

   key  <KP7> {        [  KP_Home,     KP_7    ]       };
   key  <KP8> {        [  KP_Up,       KP_8    ]       };
[...]

Pour le nom des symboles de clé (keysims), le meilleur endroit pour regarder est dans le fichier /usr/include/X11/keysymdef.h; vous devrez peut-être installer les packages de développement (ou l'installer en installant x11proto-core-dev):

[...]
/* Cursor control & motion */

#define XK_Home                          0xff50
#define XK_Left                          0xff51  /* Move left, left arrow */
#define XK_Up                            0xff52  /* Move up, up arrow */
[...]

le nom keysym est celui que vous avez une fois supprimé la chaîne "XK_".

4
Rmano