Mac の単一のキーボード キーをリマップする方法
On 12月 31, 2021 by adminMac OS X のキーボード キーを外部ツールを使用せずに別のキーにリマップする方法は? Mac 開発者でなくても可能でしょうか。どちらの場合でも、リマップしてくれる外部ツールをインストールすることができますが、単一のキーをリマップするためだけに追加のアプリケーションを持つのは好きではないのかもしれません。私の問題は、自宅では英国式キーボード、職場では米国式キーボードを使っていることに関連していました。 チルダ キーは、アメリカのキーボードでは 1/! の隣に配置され、イギリスのキーボードではセクション記号 § キーに置き換えられます。
私が直面していた、§/£ を `/~ キーにリマッピングする問題の簡単な例です。
hidutil property --set '{"UserKeyMapping": }'
ご覧のように、公式ドキュメントの表で見つける必要がある HIDKeyboardModifierMappingSrc
と HIDKeyboardModifierMappingDst
に適切な値 (usage ID) を置く必要がありました。さらに、それぞれの “Usage ID (hex)” に対して、0x700000000
とのビット単位の “OR” を計算する必要がありますが、これはほとんどの場合非常に簡単です。しかし、もしこれが難しい場合は、次の Bash コマンドも使用できます:
printf '%X\n' "$(( 0x700000000 | 0x64 ))"
ここに 0x64
は “Usage ID (hex)” 列から値に置き換えなければならない。
現在または有効なマッピングを確認するために、次のコマンドを実行できます:
hidutil property --get "UserKeyMapping"
そして最後に。 これまでの設定をすべてリセットするには、次のコマンドを実行します:
hidutil property --set '{"UserKeyMapping": }'
NOTE
hidutil
で行った変更はすべて即時反映されるので、何かを再起動する必要はないです。
再起動ごとにカスタム キー マッピングを自動的に設定する
plist ファイルを作成する (例: /Library/LaunchDaemons/org.custom.keyboard-remap.Directory)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>
それを sudo launchctl load -w /Library/LaunchDaemons/org.custom.keyboard-remap.plist
でロードし、システム再起動ごとにロードする。
plist ファイルが正常にロードされたかどうかを確認したい場合は、sudo launchctl list | grep org.custom.keyboard-remap.plist
を使用できます。
NOTE システムの自動起動から plist ファイルをアンロードするには
sudo launchctl unload /Library/LaunchDaemons/org.custom.keyboard-remap.plist
Issues
この問題に関する問題はただ 1 つ、セクション記号 § キーの適切な “Usage ID (hex)” を見つけることでした。もし、「Usage ID (hex)」コードを見つけるもっと良い方法を見つけたら、ぜひ教えてください。
plist ファイルを読み込んだ後に Invalid property list
エラーメッセージを受け取った場合、おそらく plist ファイルの古い構文を使用しようとしていて、<key>ProgramArguments</key>
の代わりに <key>Program</key>
を使用しようとしています。
Sources
- https://developer.apple.com/library/archive/technotes/tn2450/_index.html – Apple Technical Note regarding key remapping 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 about that
- https://en.wikipedia.org/wiki/British_and_American_keyboards – possible keyboard layouts
- https://apple.stackexchange.com/questions/329085/tilde-and-plus-minus-%C2%B1-in-wrong-place-on-keyboard – その記事を書いた後見つけたまったく同じ話題
– その記事はこちら
コメントを残す