Comment remapper une seule touche du clavier de Mac
On décembre 31, 2021 by adminComment remapper une touche du clavier de Mac OS X à une autre sans utiliser d’outils externes ? Est-ce même possible de le faire sans être un développeur mac ? Il s’avère que c’est assez simple dans le nouveau macOS X 10.12 Sierra en utilisant un petit utilitaire nommé hidutil
.
Problème
Vous n’aimez pas la disposition du clavier de votre Mac, ou pire vous devez travailler avec une disposition différente au travail de celle que vous avez à la maison.Dans les deux cas, vous pouvez installer un outil externe qui fera le remappage pour vous, mais peut-être que vous n’aimez pas avoir une application supplémentaire juste pour le remappage d’une seule touche.Mon problème était lié au fait d’avoir un clavier britannique à la maison et américain au travail.Bien qu’il ne soit pas IMO un problème de s’habituer à l’un d’eux le passage entre eux sur une base quotidienne est ennuyeux.Il y avait une touche en particulier qui rend les choses un peu difficile du point de vue d’un développeur.Il s’agissait d’une touche tilde `.Tilde touche est placée à côté de la 1/ ! sur le clavier américain et remplacée par une touche de signe de section § sur le clavier britannique.
Solution
Il s’avère que pour macOS X 10.12 Sierra, vous n’avez rien de plus à faire que d’exécuter un court morceau de code pour effectuer le remappage requis.
Voici un exemple simple pour le problème auquel je faisais face qui était le remappage de §/£ en `/~ key.
hidutil property --set '{"UserKeyMapping": }'
Comme vous pouvez le voir vous devez placer des valeurs appropriées (usage ID) pour HIDKeyboardModifierMappingSrc
et HIDKeyboardModifierMappingDst
que vous devrez trouver dans un tableau dans les docs officiels.De plus, pour chaque « Usage ID (hex) », vous devrez calculer le « OR » bitwise avec 0x700000000
, ce qui est très facile dans la plupart des cas, mais si vous rencontrez des difficultés avec cela, vous pouvez également utiliser la commande Bash suivante:
printf '%X\n' "$(( 0x700000000 | 0x64 ))"
Où 0x64
doit être remplacé par une valeur de la colonne « Usage ID (hex) ».
Afin de vérifier les mappings actuels/effectifs, vous pouvez exécuter:
hidutil property --get "UserKeyMapping"
Et enfin, mais pas des moindres. Afin de réinitialiser tout ce que vous avez configuré jusqu’à présent, il suffit d’exécuter:
hidutil property --set '{"UserKeyMapping": }'
NOTE
Toutes les modifications effectuées avec
hidutil
sont immédiates, vous n’avez donc pas besoin de redémarrer quoi que ce soit.
Définir automatiquement le mappage des touches personnalisées après chaque redémarrage
Créer un fichier plist par exemple /Library/LaunchDaemons/org.custom.keyboard-remap.plist:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"><plist version="1.0"> <dict> <key>Label</key> <string>org.custom.keyboard-remap</string> <key>ProgramArguments</key> <array> <string>/usr/bin/hidutil</string> <string>property</string> <string>--set</string> <string>{"UserKeyMapping": }</string> </array> <key>RunAtLoad</key> <true/> <key>KeepAlive</key> <false/> </dict></plist>
Puis chargez-le avec sudo launchctl load -w /Library/LaunchDaemons/org.custom.keyboard-remap.plist
afin qu’il soit chargé à chaque redémarrage du système.
Si vous voulez vérifier si votre fichier plist a été chargé avec succès, vous pouvez utiliser sudo launchctl list | grep org.custom.keyboard-remap.plist
.
NOTEPour décharger le fichier plist du démarrage automatique du système, utilisez
sudo launchctl unload /Library/LaunchDaemons/org.custom.keyboard-remap.plist
Issues
Je n’ai qu’un seul problème avec ce problème qui était de trouver un « ID d’utilisation (hex) » approprié pour le signe de section § clé.Il s’avère qu’elle a été nommée dans les docs d’Apple comme Keyboard Non-US \ et |.Afin de trouver cela, j’ai utilisé une approche d’essai et d’erreur, donc rien de fantaisiste.Si vous rencontrez une meilleure façon de trouver les codes « Usage ID (hex) » s’il vous plaît partager.
Dans le cas où vous recevez le message d’erreur Invalid property list
après le chargement du fichier plist, vous essayez très probablement d’utiliser l’ancienne syntaxe pour le fichier plist avec <key>Program</key>
au lieu du <key>ProgramArguments</key>
mentionné.
Sources
- https://developer.apple.com/library/archive/technotes/tn2450/_index.html – Note technique d’Apple concernant le remappage des touches dans macOS X Sierra
- https://apple.stackexchange.com/questions/283252/how-do-i-remap-a-key-in-macos-sierra-e-g-right-alt-to-right-control – Sujet Stack Overflow à ce sujet
- https://en.wikipedia.org/wiki/British_and_American_keyboards – dispositions de clavier possibles
- https://apple.stackexchange.com/questions/329085/tilde-and-plus-minus-%C2%B1-in-wrong-place-on-keyboard – exactement le même sujet trouvé après avoir écrit ce post
.
Laisser un commentaire