Jak přemapovat jednu klávesu klávesnice Macu
On 31 prosince, 2021 by adminJak přemapovat jednu klávesu klávesnice Mac OS X na druhou bez použití externích nástrojů?Je to vůbec možné, aniž byste byli vývojáři počítačů Mac?Ukazuje se, že v novém macOS X 10.12 Sierra je to docela jednoduché, a to pomocí malé utility s názvem hidutil
.
Problém
Nelíbí se vám rozložení klávesnice Macu, nebo ještě hůř, musíte v práci pracovat s jiným rozložením, než máte doma.V obou případech si můžete nainstalovat nějaký externí nástroj, který přemapování provede za vás, ale možná se vám nelíbí mít další aplikaci jen na přemapování jedné klávesy?“ Můj problém souvisel s tím, že doma mám britskou klávesnici a v práci americkou. i když IMO není problém si zvyknout na žádnou z nich, každodenní přepínání mezi nimi je nepříjemné. z vývojářského hlediska to trochu komplikuje zejména jedna klávesa, a to klávesa tilde `. klávesa tilde je umístěna vedle 1/! na americké klávesnici a na britské klávesnici je nahrazena klávesou se znakem sekce §.
Řešení
Jak se ukázalo, pro systém MacOS X 10.12 Sierra nemusíte udělat nic víc, než spustit krátký kus kódu, který provede požadované přemapování.
Tady je jednoduchý příklad pro problém, se kterým jsem se potýkal a který spočíval v přemapování klávesy §/£ na klávesu `/~.
hidutil property --set '{"UserKeyMapping": }'
Jak vidíte, musíte pro klávesy HIDKeyboardModifierMappingSrc
a HIDKeyboardModifierMappingDst
umístit příslušné hodnoty (ID použití), které budete muset najít v tabulce v oficiálních dokumentech.Navíc pro každé „Usage ID (hex)“ budete muset vypočítat bitové „OR“ s 0x700000000
, což je ve většině případů velmi snadné, ale pokud s tím máte potíže, můžete také použít následující příkaz Bash:
printf '%X\n' "$(( 0x700000000 | 0x64 ))"
Kde 0x64
by mělo být nahrazeno hodnotou ze sloupce „Usage ID (hex)“.
Pro kontrolu aktuálního/účinného mapování můžete spustit:
hidutil property --get "UserKeyMapping"
A v neposlední řadě. Pro resetování všeho, co jste dosud nastavili, stačí spustit:
hidutil property --set '{"UserKeyMapping": }'
NOTE
Všechny změny provedené pomocí
hidutil
jsou okamžité, takže nemusíte nic restartovat.
Automatické nastavení vlastního mapování kláves po každém restartu
Vytvořte soubor plist, například /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>
Poté jej načtěte pomocí sudo launchctl load -w /Library/LaunchDaemons/org.custom.keyboard-remap.plist
, aby se načítal při každém restartu systému.
Pokud chcete zkontrolovat, zda byl váš soubor plist úspěšně načten, můžete použít sudo launchctl list | grep org.custom.keyboard-remap.plist
.
POZNÁMKAPro odpojení souboru plist od autostartu systému použijte
sudo launchctl unload /Library/LaunchDaemons/org.custom.keyboard-remap.plist
Problémy
Mám pouze jeden problém s tímto problémem, kterým bylo nalezení vhodného „Usage ID (hex)“ pro znak sekce § klíč.Jak se ukázalo, v dokumentech Apple byla pojmenována jako Keyboard Non-US \ a |.Abych to zjistil, použil jsem metodu pokus-omyl, takže nic extra.Pokud narazíte na nějaký lepší způsob hledání kódů „Usage ID (hex)“, podělte se prosím.
V případě, že po načtení souboru plist dostáváte chybovou hlášku Invalid property list
, nejspíš se snažíte použít starou syntaxi pro soubor plist s <key>Program</key>
místo zmíněné <key>ProgramArguments</key>
.
Zdroje
- https://developer.apple.com/library/archive/technotes/tn2450/_index.html – technická poznámka společnosti Apple týkající se přemapování kláves v systému 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 – téma na Stack Overflow na toto téma
- https://en.wikipedia.org/wiki/British_and_American_keyboards – možné rozložení klávesnice
- https://apple.stackexchange.com/questions/329085/tilde-and-plus-minus-%C2%B1-in-wrong-place-on-keyboard – přesně stejné téma nalezené po napsání tohoto příspěvku
.
Napsat komentář