J'essaie de remapper mon clavier afin de rendre emacs utilisable. Mon clavier ergonomique place sa seule touche de commande dans un îlot isolé à 4 touches vers la gauche.
L'OS est Debian squeeze.
Voici les lignes que j'essaye d'alimenter xmodmap
, je les place dans un fichier ~ / .Xmodmap:
contrôle clair effacer Mod1 ! Les touches Alt sont étiquetées «Option» sur mon clavier, ! l'utilisation de xev leur montre d'envoyer respectivement Alt_L et Alt_R keysym keysym Alt_L = Control_L keysym Alt_R = Control_R ! Les clés Super_L et Super_R sont les clés Windows keysym Super_L = Alt_L keysym Super_R = Alt_R ajouter Control = Control_L Control_R ajouter Mod1 = Alt_L Alt_R
Mon objectif est de faire en sorte que mes Alttouches Option (aka ) se comportent comme des touches de contrôle et d'obtenir que mes touches Windows (aka Super) se comportent comme Alt.
Voici les keycodes et keysms édités par xev pour les clés en question. Remarque, mon clavier (un clavier ergonomique Goldtouch) n'a qu'une seule touche de contrôle.
keycode 37 (keysym 0xffe3, Control_L) keycode 64 (keysym 0xffe9, Alt_L) keycode 133 (keysym 0xffeb, Super_L) keycode 134 (keysym 0xffec, Super_R) keycode 108 (keysym 0xffea, Alt_R)
Voici ce que xev affiche lors de l'exécution xmodmap .Xmodmap
Événement MappingNotify, série 34, NO synthétique, fenêtre 0x0, demande MappingKeyboard, first_keycode 204, compte 1 Événement MappingNotify, série 34, NO synthétique, fenêtre 0x0, demande MappingKeyboard, first_keycode 64, compte 1 Événement MappingNotify, série 34, NO synthétique, fenêtre 0x0, demande MappingKeyboard, first_keycode 108, compte 1 Événement MappingNotify, série 34, NO synthétique, fenêtre 0x0, demande MappingKeyboard, first_keycode 206, compte 1 Événement MappingNotify, série 34, NO synthétique, fenêtre 0x0, demande MappingKeyboard, first_keycode 133, compte 1 Événement MappingNotify, série 34, NO synthétique, fenêtre 0x0, demande MappingKeyboard, first_keycode 134, compte 1
Et voici l'erreur renvoyée par xmodmap
:
X Erreur d'échec de la demande: BadValue (paramètre entier hors plage pour le fonctionnement) Opcode principal de la demande ayant échoué: 118 (X_SetModifierMapping) Valeur dans la demande ayant échoué: 0x17 Numéro de série de la demande ayant échoué: 17 Numéro de série actuel dans le flux de sortie: 17
des suggestions sur la façon de résoudre ce problème?
xev
dans un terminal, puisxmodmap
dans un autre terminal. Vous devriez voir quelquesMappingNotify
strophes dexev
, ajoutez-les à votre question. Aussi, dans laxev
fenêtre, appuyez sur les différentes touches impliquées et dites-nous à quel keycode et keysym ils correspondent (la partie «keycode 37 (keysym 0xffe3, Control_L)» de la sortie xev).Réponses:
Cela a déjà été signalé comme bogue Debian # 564327 , bogue Debian # 565279 , bogue Ubuntu # 524774 et bogue FreeDesktop 20145 . Il y a un correctif source attaché à la discussion de bogue FreeDesktop. Il existe plusieurs solutions de contournement dans la discussion sur les bogues d'Ubuntu, en particulier une
.Xmodmap
solution de contournement .la source
En regardant la solution de contournement liée par Giles, voici ce qui a fonctionné pour moi:
Mes touches Option fonctionnent désormais comme les touches Contrôle et mes touches Windows comme les touches Alt.
la source
Le problème survient lorsque vous essayez d'ajouter un symbole de clé à un modificateur qui est déjà ajouté à une autre touche de modification. Il est essentiel de savoir que si vous ajoutez un keysym à un modificateur, tous les autres keysymes qui accompagnent le keysym au cas où sont ajoutés également à ce modificateur.
Par exemple:
peut entraîner
parce que vous avez quelque chose comme
dans votre ~ / .Xmodmap (Affichez le code clé actuel pour le mappage de keysym via
xmodmap -pke
)qui produira l'erreur BadValue en question lorsque vous essayez également de faire quelque chose comme
car Caps_Lock est déjà ajouté au modificateur mod5.
la source
Ceci est une autre solution à votre problème bien qu'elle ne réponde pas vraiment à votre question. Modifiez xorg.conf, en insérant ce qui suit dans la section "InputDevice":
la source