OSXのセットアップを複製するスクリプトを作成しようとしています。特に、矢印キーをに再マップしたい CMD + H、J、K、L。
テクニックはこれに似ているようです Linuxソリューション 変更するキーファイルが/usr/X11/share/X11/xkb/symbols/us
にあることを除いて。ただし、実際には期待どおりに機能しておらず、オプションキーをマッピングしているようです。
OS Xのコマンドラインからキーを再マップするにはどうすればよいですか?
システム環境設定のようなアプリケーション固有のキーボードショートカットは、対応するアプリケーションの設定ファイルの/Users/username/Library/Preferences/
の最上位のNSUserKeyEquivalents
キーに保存されます。
これらのファイルは、コマンドラインの/usr/libexec/PlistBuddy
およびdefaults
プログラムを使用して読み書きできます。
$ defaults read com.Apple.Automator NSUserKeyEquivalents
{
"Hide Library" = "@$l";
"Show Library" = "@$l";
}
$ defaults write com.Apple.Terminal NSUserKeyEquivalents -dict-add "About Terminal" '^@$a'
記号とその意味:
@
は Command$
は Shift^
は Control~
は Optionさらに、これらのファイルを他のマシンにコピーするだけで、ユーザーの好みを持ち運ぶことができます。
KeyRemap4MacBook を使用すると、これを private.xml として保存できます。
<?xml version="1.0"?>
<root>
<item>
<name>test</name>
<identifier>private.test</identifier>
<autogen>--KeyToKey-- KeyCode::H, VK_COMMAND | ModifierFlag::NONE, KeyCode::CURSOR_LEFT</autogen>
<autogen>--KeyToKey-- KeyCode::H, VK_COMMAND | VK_SHIFT | ModifierFlag::NONE, KeyCode::CURSOR_LEFT, ModifierFlag::SHIFT_L</autogen>
<autogen>--KeyToKey-- KeyCode::J, VK_COMMAND | ModifierFlag::NONE, KeyCode::CURSOR_DOWN</autogen>
<autogen>--KeyToKey-- KeyCode::J, VK_COMMAND | VK_SHIFT | ModifierFlag::NONE, KeyCode::CURSOR_DOWN, ModifierFlag::SHIFT_L</autogen>
<autogen>--KeyToKey-- KeyCode::K, VK_COMMAND | ModifierFlag::NONE, KeyCode::CURSOR_UP</autogen>
<autogen>--KeyToKey-- KeyCode::K, VK_COMMAND | VK_SHIFT | ModifierFlag::NONE, KeyCode::CURSOR_UP, ModifierFlag::SHIFT_L</autogen>
<autogen>--KeyToKey-- KeyCode::L, VK_COMMAND | ModifierFlag::NONE, KeyCode::CURSOR_RIGHT</autogen>
<autogen>--KeyToKey-- KeyCode::L, VK_COMMAND | VK_SHIFT | ModifierFlag::NONE, KeyCode::CURSOR_RIGHT, ModifierFlag::SHIFT_L</autogen>
</item>
</root>
| ModifierFlag::NONE
を省略すると、たとえば⌥⌘Hが←に変わります。
キーコード定数 および 事前定義された設定 のソースを参照してください。
構成を完全に自動化したい場合は、/Library/org.pqrs/KeyRemap4MacBook/app/KeyRemap4MacBook_cli.app/Contents/MacOS/KeyRemap4MacBook_cli enable private.test
で設定を有効にできます。