LoginSignup
4
6

More than 1 year has passed since last update.

Karabiner 代替・Mac キーボードカスタマイズ (macOS Sierra 以降)

Posted at

これはなに

PC 用キーボードを Mac で使う際などのカスタマイズユーティリティとしては Karabiner-Elements が有名で、使用できる状況であれば Karabiner を入れておしまいだが、今回のものは何らかの理由で使用できない場合の代替手段。
ただし、この方法で可能なのは 「○キーを△キーとして認識」等の単純な1対1の置き換えのみ で「ctrl + w を ↑ として認識」等の高度な設定は行えないため、そういった場合は残念ながら代替手段にはなりえない。
自分の環境では macOS Ventura にアップデートした際 Karabiner がどうやっても動かなくなりこの方法を使用した。

仕組み

別途アプリケーションの導入などは不要で、macOS Sierra 以降は OS 標準でキーマップをカスタマイズする「hidutil」というコマンドが用意されているので、それ用の設定ファイルを準備するだけで良い。
hidutil コマンドによるキーマップ変更は再起動すると元に戻ってしまうため OS 起動時に変更を行う仕組みを作る必要があるが、それもシステムライブラリの「Launch Agents」に実行内容を記した XML ファイルを置くだけで完了する。

実際の手順

XML ジェネレータが公開されているので hidutil key remapping generator for MacOS で編集した内容を UTF-8 / LF のテキストファイル「com.local.KeyRemapping.plist」として作成し「~/Library/LaunchAgents/com.local.KeyRemapping.plist」に置けば準備完了。
元に戻したい場合は「com.local.KeyRemapping.plist」を削除。

日本語キーボード特有のキー

hidutil key remapping generator for MacOS には残念ながら日本語 PC キーボード用のキーが含まれないため「無変換」「変換」「カタカナひらがな」については自分で記述する必要がある。

キー
無変換 0x70000008B
変換 0x70000008A
カタカナひらがな 0x700000088

※「半角/全角」キーは「Controls and symbols > grave_accent_and_tilde」

おまけ:一般的な PC → Mac 用キーボード設定

下記の変換を行う場合の設定。

  • Windows キー → 左Option
  • Alt → 左Command
  • 無変換 → 左Command
  • 変換 → 右Command
  • カタカナひらがな → 右Command
  • Application (メニューアイコンのキー) → 右Option
<?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>com.local.KeyRemapping</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/bin/hidutil</string>
        <string>property</string>
        <string>--set</string>
        <string>{"UserKeyMapping":[
            {
              "HIDKeyboardModifierMappingSrc": 0x7000000E3,
              "HIDKeyboardModifierMappingDst": 0x7000000E2
            },            {
              "HIDKeyboardModifierMappingSrc": 0x7000000E2,
              "HIDKeyboardModifierMappingDst": 0x7000000E3
            },
            {
              "HIDKeyboardModifierMappingSrc": 0x70000008B,
              "HIDKeyboardModifierMappingDst": 0x7000000E3
            },
            {
              "HIDKeyboardModifierMappingSrc": 0x70000008A,
              "HIDKeyboardModifierMappingDst": 0x7000000E7
            },
            {
              "HIDKeyboardModifierMappingSrc": 0x700000088,
              "HIDKeyboardModifierMappingDst": 0x7000000E7
            },
            {
              "HIDKeyboardModifierMappingSrc": 0x700000065,
              "HIDKeyboardModifierMappingDst": 0x7000000E6
            }
        ]}</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>
4
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
6