(macOS)Karabiner Elementsを使わず装飾キーをカスタマイズする方法

2021/12/12に公開

はじめに

macOSはシステム環境設定から装飾キー(Caps LockキーやOptionキー)のカスタマイズができます。

ただし、カスタマイズできる装飾キーには制限があります。さらに、右Optionキーを左Ctrlキーにリマップするといった細かなカスタマイズはできません。

とはいえ、Karabiner Elementsのようなサードパーティーアプリを導入するのは面倒です。キー入力を監視される懸念もあります。macOSの標準機能でカスタマイズできないのでしょうか?

hidutilコマンドを使ってカスタマイズ

hidutilコマンドで装飾キーのカスタマイズが自由に行えます。hidutilコマンドはmacOS 10.12 Sierra以降のバージョンにインストールされています。

which hidutil
/usr/bin/hidutil

例として、右Optionキーを左Ctrlキーにリマップする設定を示します。

hidutil property --set '{"UserKeyMapping":[
  {
    "HIDKeyboardModifierMappingSrc": 0x7000000E6,
    "HIDKeyboardModifierMappingDst": 0x7000000E0
  },
]}'

HIDKeyboardModifierMappingSrcには変更前のキーコード、HIDKeyboardModifierMappingDstには変更後のキーコードを設定します。

キーコードは0x7000000 + 対象のキーコードで指定します。以下、簡易的なキーコード表を示します。

キーの名前 キーコード
左Ctrl 0xE0
左Shift 0xE1
左Option 0xE2
左Command 0xE3
右Ctrl 0xE4
右Shift 0xE5
右Option 0xE6
右Command 0xE7

完全なキーコード表については以下を参照してください。

hidutilコマンドの注意点

hidutilコマンドの設定はmacOSを再起動すると元に戻ります。逆にいえば、再起動するまで設定は消えません。もし設定を間違えてキーボードが操作不能になった場合は再起動してください。

しかし、macOSが起動するたびに毎回hidutilを実行するのは面倒です。Launch Agentsでhidutilを実行するように設定しておくと便利です。

ただし、hidutilの設定が間違っているとMacを起動した直後からキーボードが操作不能になる恐れがあります。まずは手動でhidutilを実行して、問題なければ起動スクリプトに移植するのが安全です。

Discussion