La note technique TN2450 d'Apple décrit comment remapper des clés. L'exécution de la commande suivante remappera Right Alt pour devenir Right Control.
hidutil property --set '{"UserKeyMapping":
[{"HIDKeyboardModifierMappingSrc":0x7000000e6,
"HIDKeyboardModifierMappingDst":0x7000000e4}]
}'
Notez que la commande ci-dessus ne fait pas basculer les commandes Alt droite et Droite. Ils seront tous les deux le bon contrôle. Si vous avez un MacBook, vous ne le remarquerez pas avant de brancher un clavier externe. Si vous souhaitez commuter Alt droite et Contrôle droit, vous devez ajouter une deuxième commande de commutateur, comme la suivante.
hidutil property --set '{"UserKeyMapping":
[{"HIDKeyboardModifierMappingSrc":0x7000000e4,
"HIDKeyboardModifierMappingDst":0x7000000e6},
{"HIDKeyboardModifierMappingSrc":0x7000000e6,
"HIDKeyboardModifierMappingDst":0x7000000e4}]
}'
Le tableau au bas de la note technique contient une liste de valeurs hexadécimales pour chaque clé. Pour généraliser la réponse ci-dessus pour changer de clé, vous devez or
utiliser la valeur hexadécimale de cette liste avec 0x700000000
. Le code Python suivant illustre une façon de procéder.
In [1]: def convert(val):
...: int_val = int(val, 16)
...: int_ref = 0x700000000
...:
...: return hex(int_ref | int_val)
...:
In [2]: r_alt = '0xE6'
In [3]: print(convert(r_alt))
0x7000000e6
Steven C. Howell
la source
Src
etDst
.\
de mon clavier est celleShift+Option+7
que je voudrais remplacer par quelque chose de plus simple comme celuiOption+.
que j'utilise à peine. Comment je fais ça? Merci de votre aide.Une approche plus générale et conviviale consiste à utiliser Karabiner-Elements , qui est une version de Karabiner qui fonctionne sur Sierra.
la source
Ceci est un addendum à la réponse de Steven C. Howell.
J'ai un nouveau MacBook Pro avec un clavier scandinave. Ce nouveau modèle n'a plus de touche Esc, ce qui est un handicap important pour moi.
J'ai découvert que ce qui suit traduira la touche § (en haut à gauche, à gauche de 1 et au-dessus de la touche de tabulation) - que je ne pense pas avoir utilisé pour quoi que ce soit avant aujourd'hui - pour produire Esc.
Dans la documentation d'Apple (liée à la réponse de Steven), cela est étiqueté comme "Clavier non américain \ et |" (0x64).
Plusieurs des touches «non américaines» sont difficiles à découvrir car elles se réfèrent généralement à des touches qui ont une étiquette différente sur le clavier que vous utilisez. (J'ai également découvert que "Accent grave et tilde" se réfère à la touche entre le décalage gauche et z, qui sur mon clavier produit
<
. Je n'ai pas pu déterminer quelle touche correspond à "Non US#
et~
" et je n'ai pas expérimenté davantage une fois que j'ai trouvé ma clé.) Si vous voulez expérimenter, essayez d'exécuter le script dans le terminal jusqu'à ce que vous trouviez la clé dont vous avez besoin:Cela boucle sur les codes clés et change un à la fois, dans l'espoir que vous puissiez trouver par essais et erreurs une clé qui ne vous est pas particulièrement utile. Essayez de taper quelque chose quand il vous le demande - si vous obtenez un
g
au lieu de ce que vous attendiez, vous avez trouvé le bon code clé. (Passez0x70000000a
à autre chose si ceg
n'est pas un choix pratique pour vous. Peut-être que vous voulez remapper lag
clé?) Lorsque vous avez terminé de taper, appuyez simplement sur Entrée pour passer à la touche suivante.Pour ce que ça vaut, la dernière commande dans la boucle est la façon dont vous zappez tous les
UserKeyMapping
paramètres:Lorsque vous exécutez initialement,
hidutil property --get UserKeyMapping
il produitmais il semble que vous ne puissiez pas réinjecter cette valeur pour zapper le paramètre (ou plutôt, il accepte mais ignore cette entrée).
(Si vous n'êtes pas familier avec le terminal, il suffit de copier / coller la chose à partir
for
jusqu'à ce quedone
votrebash$
message ou similaire.)Conformément à cette question relative au débordement de pile, vous pouvez placer la commande dans un fichier de script dans votre répertoire personnel et l'ajouter à votre
launchd
configuration pour rendre cette modification persistante.Si certains lecteurs ne sont pas à l'aise de le faire par eux-mêmes, voici un script rapide qui le fait pour vous. Encore une fois, copiez / collez simplement cela à l'invite du terminal.
Évidemment, si vous vous retrouvez avec une autre clé que
0x700000064
vous devez changer cela dans le script ou dans le fichier"$HOME"/bin/userkeymapping
qu'il finit par créer si vous avez déjà exécuté ce qui précède.la source
LoginHook
mais cela ne fonctionnait pas pour moi, et basé sur stackoverflow.com/a/22872222/874188, je suis passé à unelaunchd
approche à la place.Si tout ce que vous voulez faire est de remapper une seule clé
Exemple: comment remapper la touche d'échappement sur Mac
Allez dans le menu Apple et choisissez "Préférences Système" puis allez dans le panneau de préférences "Clavier" et choisissez l'onglet "Clavier"
Cliquez sur le bouton «Touches de modification» dans le coin inférieur droit
référence
la source
Dans le cas où vous pourriez vouloir restaurer les valeurs par défaut:
la source