Wie kann man eine einzelne Taste der Mac-Tastatur umbelegen
On Dezember 31, 2021 by adminWie kann man eine Taste der Mac OS X-Tastatur in eine andere umbelegen, ohne ein externes Tool zu benutzen?Ist das überhaupt möglich, ohne ein Mac-Entwickler zu sein?Es stellt sich heraus, dass es im neuen macOS X 10.12 Sierra ziemlich einfach ist, wenn man ein kleines Programm namens hidutil
benutzt.
Problem
Sie mögen Ihr Mac-Tastatur-Layout nicht, oder schlimmer noch, Sie müssen auf der Arbeit mit einem anderen Layout arbeiten, als Sie es zu Hause haben.In beiden Fällen können Sie ein externes Tool installieren, das die Umstellung für Sie übernimmt, aber vielleicht möchten Sie keine zusätzliche Anwendung haben, nur um eine einzelne Taste umzustellen… Mein Problem hing damit zusammen, dass ich zu Hause eine britische Tastatur habe und auf der Arbeit eine amerikanische… Während es IMO kein Problem ist, sich an eine von beiden zu gewöhnen, ist das Umschalten zwischen ihnen auf einer täglichen Basis lästig… Es gab eine Taste im Besonderen, die die Dinge aus der Sicht eines Entwicklers ein wenig schwierig macht… Es war eine Tilde-Taste… Die Tilde-Taste ist neben der 1/! auf der amerikanischen Tastatur und durch eine §-Taste auf der britischen ersetzt.
Lösung
Wie sich herausstellt, muss man für macOS X 10.12 Sierra nicht mehr tun, als ein kurzes Stück Code auszuführen, um die erforderliche Umstellung vorzunehmen.
Hier ist ein einfaches Beispiel für das Problem, mit dem ich konfrontiert war, nämlich die Umstellung von §/£ auf `/~ Taste.
hidutil property --set '{"UserKeyMapping": }'
Wie man sieht, muss man für HIDKeyboardModifierMappingSrc
und HIDKeyboardModifierMappingDst
entsprechende Werte (Usage ID) setzen, die man in einer Tabelle in den offiziellen Dokumenten finden muss.Außerdem müssen Sie für jede „Usage ID (hex)“ ein bitweises „OR“ mit 0x700000000
berechnen, was in den meisten Fällen sehr einfach ist, aber wenn Sie damit Schwierigkeiten haben, können Sie auch den folgenden Bash-Befehl verwenden:
printf '%X\n' "$(( 0x700000000 | 0x64 ))"
Wobei 0x64
durch einen Wert aus der Spalte „Usage ID (hex)“ ersetzt werden sollte.
Um die aktuellen/wirksamen Zuordnungen zu überprüfen, können Sie Folgendes ausführen:
hidutil property --get "UserKeyMapping"
Und zu guter Letzt. Um alles, was du bisher eingerichtet hast, zurückzusetzen, führe einfach aus:
hidutil property --set '{"UserKeyMapping": }'
HINWEIS
Alle Änderungen, die du mit
hidutil
gemacht hast, sind sofort gültig, du musst also nichts neu starten.
Benutzerdefinierte Tastenbelegung nach jedem Neustart automatisch einstellen
Plist-Datei erstellen, z. B. /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>
Dann lade sie mit sudo launchctl load -w /Library/LaunchDaemons/org.custom.keyboard-remap.plist
, so dass sie bei jedem Systemneustart geladen wird.
Wenn du überprüfen willst, ob deine plist-Datei erfolgreich geladen wurde, kannst du sudo launchctl list | grep org.custom.keyboard-remap.plist
verwenden.
HINWEISUm die plist-Datei vom Autostart des Systems zu entladen, verwenden Sie
sudo launchctl unload /Library/LaunchDaemons/org.custom.keyboard-remap.plist
Probleme
Ich habe nur ein Problem mit diesem Problem, das darin bestand, eine passende „Usage ID (hex)“ für den §-Schlüssel zu finden.Wie sich herausstellte, wurde es in den Apple-Dokumenten als Keyboard Non-US \ und |.Um das herauszufinden, habe ich Versuch und Irrtum Ansatz verwendet, so dass nichts fancy.If Sie kommen über einen besseren Weg zu finden „Usage ID (hex)“ Codes bitte teilen.
In dem Fall, dass Sie erhalten Invalid property list
Fehlermeldung nach dem Laden plist-Datei sind Sie höchstwahrscheinlich versuchen, die alte Syntax für plist-Datei mit <key>Program</key>
anstelle der erwähnten <key>ProgramArguments</key>
verwenden.
Quellen
- https://developer.apple.com/library/archive/technotes/tn2450/_index.html – Apple Technical Note zur Tastenbelegung 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 Thema dazu
- https://en.wikipedia.org/wiki/British_and_American_keyboards – mögliche Tastaturlayouts
- https://apple.stackexchange.com/questions/329085/tilde-and-plus-minus-%C2%B1-in-wrong-place-on-keyboard – genau das gleiche Thema wurde nach dem Schreiben dieses Beitrags gefunden
Schreibe einen Kommentar