Hoe wijzig je een Mac toetsenbord toets
On december 31, 2021 by adminHoe wijzig je een Mac OS X toetsenbord toets in een andere zonder gebruik te maken van externe tools? Het blijkt vrij eenvoudig te zijn in de nieuwe macOS X 10.12 Sierra met behulp van een kleine util genaamd hidutil
.
Probleem
Je Mac toetsenbord indeling bevalt je niet, of erger nog je moet werken met een andere indeling op het werk dan je thuis hebt.In beide gevallen kunt u een extern hulpprogramma installeren dat het opnieuw toewijzen voor u zal doen, maar misschien wilt u geen extra programma alleen voor het opnieuw toewijzen van een enkele toets? Mijn probleem had te maken met het hebben van een Brits toetsenbord thuis en een Amerikaans op het werk. Hoewel het IMO geen probleem is om te wennen aan een van deze overschakelen op een dagelijkse basis is vervelend. Er was een toets in het bijzonder die dingen een beetje moeilijk maakt vanuit het oogpunt van een ontwikkelaar. Het was een tilde-toets `. Tilde-toets is geplaatst naast de 1/! op het Amerikaanse toetsenbord en vervangen door een sectieteken § toets op het Britse.
Oplossing
Zo blijkt voor macOS X 10.12 Sierra hoef je niet meer te doen dan een kort stukje code te draaien om de benodigde remapping te doen.
Hier volgt een eenvoudig voorbeeld van het probleem waarmee ik werd geconfronteerd, namelijk het omzetten van §/£ naar `/~ key.
hidutil property --set '{"UserKeyMapping": }'
Zoals u kunt zien moet u de juiste waarden (usage ID) voor HIDKeyboardModifierMappingSrc
en HIDKeyboardModifierMappingDst
plaatsen, die u in een tabel in de officiële docs kunt vinden.Bovendien moet u voor elke “Usage ID (hex)” een bitwise “OR” berekenen met 0x700000000
, wat in de meeste gevallen heel eenvoudig is, maar als u hiermee problemen ondervindt, kunt u ook het volgende Bash-commando gebruiken:
printf '%X\n' "$(( 0x700000000 | 0x64 ))"
Waarbij 0x64
moet worden vervangen door een waarde uit de kolom “Usage ID (hex)”.
Om de huidige/effectieve toewijzingen te controleren, kunt u het volgende uitvoeren:
hidutil property --get "UserKeyMapping"
En last but not least. Om alles wat u tot nu toe hebt ingesteld terug te zetten, voert u gewoon uit:
hidutil property --set '{"UserKeyMapping": }'
NOTE
Alle wijzigingen die u met
hidutil
hebt gemaakt, worden onmiddellijk doorgevoerd, dus u hoeft niets opnieuw te starten.
Automatisch instellen van aangepaste toetsindeling na elke herstart
Maak plist-bestand aan, bijv. /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>
Laad het vervolgens met sudo launchctl load -w /Library/LaunchDaemons/org.custom.keyboard-remap.plist
zodat het bij elke herstart van het systeem wordt geladen.
Als u wilt controleren of uw plist-bestand met succes is geladen, kunt u sudo launchctl list | grep org.custom.keyboard-remap.plist
gebruiken.
NOTEOm het plist-bestand uit de autostart van het systeem te halen, gebruikt u
sudo launchctl unload /Library/LaunchDaemons/org.custom.keyboard-remap.plist
Issues
Ik heb slechts één probleem met dit probleem en dat was het vinden van een geschikte “Usage ID (hex)” voor de sectie teken § toets.Het blijkt dat het in de Apple docs Keyboard Non-US en | wordt genoemd. Om daar achter te komen heb ik trial and error gebruikt, dus niets bijzonders. Als je een betere manier tegenkomt om “Usage ID (hex)” codes te vinden, deel die dan.
In het geval dat je Invalid property list
foutmelding krijgt na het laden van het plist bestand, probeer je waarschijnlijk de oude syntax voor het plist bestand te gebruiken met <key>Program</key>
in plaats van de genoemde <key>ProgramArguments</key>
.
Bronnen
- https://developer.apple.com/library/archive/technotes/tn2450/_index.html – Technische Nota van Apple betreffende toetsremapping in 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 – Stack Overflow topic daarover
- https://en.wikipedia.org/wiki/British_and_American_keyboards – mogelijke toetsenbordindelingen
- https://apple.stackexchange.com/questions/329085/tilde-and-plus-minus-%C2%B1-in-wrong-place-on-keyboard – exact hetzelfde topic gevonden na het schrijven van die post
Geef een antwoord