Dies ist ein Nachtrag zu Steven C. Howells Antwort.
Ich habe ein neues MacBook Pro mit einer skandinavischen Tastatur. Dieses neue Modell hat keine Esc-Taste mehr, was für mich ein erhebliches Handicap darstellt.
Ich habe herausgefunden, dass das Folgende die §-Taste (links oben, links von 1 und über der Tabulatortaste) übersetzt - die ich, glaube ich, noch nie zuvor für irgendetwas benutzt habe -, um Esc zu produzieren.
hidutil property --set '{"UserKeyMapping":[{"HIDKeyboardModifierMappingSrc":0x700000064,"HIDKeyboardModifierMappingDst":0x700000029}]}'
In der Dokumentation von Apple (verknüpft mit der Antwort von Steven) ist dies als "Keyboard Non-US \ and |" (0x64).
Einige der Tasten außerhalb der USA sind schwer zu finden, da sie sich normalerweise auf Tasten beziehen, die auf der verwendeten Tastatur eine andere Bezeichnung haben. (Ich habe auch festgestellt, dass "Grave accent and tilde" sich auf die Taste zwischen left shift und z bezieht, die auf meiner Tastatur erzeugt wird <
. Ich konnte nicht feststellen, welche Taste "Non-US #
and ~
" entspricht, und habe nicht weiter experimentiert, sobald ich sie gefunden habe my key.) Wenn Sie experimentieren möchten, führen Sie das Skript im Terminal aus, bis Sie den gewünschten Schlüssel gefunden haben:
for ((i=1;i<=128;++i)); do
printf '0x7000000%0x\n' "$i"
printf '{"UserKeyMapping":[{"HIDKeyboardModifierMappingSrc":0x7000000%0x,"HIDKeyboardModifierMappingDst":0x70000000a}]}' "$i" |
xargs -0 hidutil property --set >/dev/null
read -p "Type some stuff: "
hidutil property --set '{"UserKeyMapping":[{}]}' >/dev/null
done
Dies durchläuft die Schlüsselcodes und ändert sich nacheinander, in der Hoffnung, dass Sie durch Ausprobieren einen Schlüssel finden, der für Sie nicht besonders nützlich ist. Geben Sie etwas ein, wenn Sie dazu aufgefordert werden. Wenn Sie g
anstelle des erwarteten einen erhalten, haben Sie den richtigen Schlüsselcode gefunden. (Wechseln Sie 0x70000000a
zu etwas anderem, wenn dies g
für Sie nicht bequem ist. Möchten Sie die g
Taste möglicherweise neu zuordnen ?) Wenn Sie mit der Eingabe fertig sind , drücken Sie einfach die Eingabetaste, um mit der nächsten Taste fortzufahren.
Der letzte Befehl in der Schleife ist, wie Sie alle UserKeyMapping
Einstellungen zappen :
hidutil property --set '{"UserKeyMapping":[{}]}'
Wenn Sie es zum ersten Mal ausführen, wird hidutil property --get UserKeyMapping
es erzeugt
(null)
Es scheint jedoch, dass Sie diesen Wert nicht zurückmelden können, um die Einstellung zu ändern (oder diese Eingabe zu akzeptieren, aber zu ignorieren).
(Wenn Sie mit dem Terminal nicht vertraut sind, kopieren Sie das Objekt einfach von for
bis done
an Ihrer bash$
Eingabeaufforderung oder ähnlichem.)
Gemäß dieser verwandten Stapelüberlauf-Frage können Sie den Befehl in eine Skriptdatei in Ihrem Ausgangsverzeichnis einfügen und zu Ihrer launchd
Konfiguration hinzufügen , um diese Änderung dauerhaft zu machen.
Für den Fall, dass einige Leser dies nicht alleine tun möchten, finden Sie hier ein kurzes Skript, das dies für Sie erledigt. Kopieren Sie dies einfach an der Eingabeaufforderung des Terminals.
mkdir -p "$HOME"/bin
printf '%s\n' '#!/bin/sh' \
'hidutil property --set '{"UserKeyMapping":[{"HIDKeyboardModifierMappingSrc":0x700000064,"HIDKeyboardModifierMappingDst":0x700000029}]}' \
>"$HOME"/bin/userkeymapping
chmod 755 "$HOME"/bin/userkeymapping
cat<<: >"$HOME"/Library/LaunchAgents/userkeymapping.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>userkeymapping</string>
<key>ProgramArguments</key>
<array>
<string>$HOME/bin/userkeymapping</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
:
launchctl load "$HOME"/Library/LaunchAgents/userkeymapping.plist
Wenn Sie am Ende einen anderen Schlüssel haben als den, den 0x700000064
Sie im Skript ändern müssen, oder in der Datei, die "$HOME"/bin/userkeymapping
es erstellt, wenn Sie das oben genannte bereits ausgeführt haben.