やりたいこと
- Mac上のVirtualBoxにWindowsを乗せて動かしている
- Macと同じキーバインドにしたいので、「かな」で全角入力モードに、「英数」で半角入力モードにIMEを切り替えたい
でもできない
- IMEのキーバインドを変えればうまくいくという情報がたくさん出てくるけどうまくいかない
- どうやらそれらの記事はbootcamp向けのようで、VirtualBoxだとだめ
原因
- VirtualBoxがWindowsに押されたキーを渡す時に、「かな」「英数」ともに「半角/全角」という同一のキーにマッピングしてしまう
- Windows側では区別ができないので、役割を別々にすることができない
対処
-
Karabinerを使って「英数」キーを別のキーに変更してしまう
- これを使うと、Mac上のキーバインドをアプリごとに変更することができる
- VirtualBoxに対してだけ、「英数」が押されたら「Ctrl+¥」が押されたことにする
対応手順
- Karabinerをダウンロードし普通にMacにインストールする
- Misc&Uninstall > Open private.xml でFinderを開きprivate.xmlをなんらかのエディタで編集する
private.xml
<?xml version="1.0"?>
<root>
<appdef>
<appname>VirtualBox</appname>
<equal>org.virtualbox.app.VirtualBoxVM</equal>
</appdef>
<item>
<name>Use EISUU as CTRL + YEN in VirtualBox</name>
<identifier>private.virtualbox_eisuu</identifier>
<only>VirtualBox</only>
<autogen>__KeyToKey__ KeyCode::JIS_EISUU, KeyCode::JIS_YEN, ModifierFlag::CONTROL_L</autogen>
</item>
</root>
- 保存した後、 Change Key > Reload xmlを選択して、private.xmlを反映する
- 表示されたprivate keyチェックボックスにチェックを入れる
- WindowsのIMEのキーバインド設定で、Ctrl+¥をキー追加して、IMEオフに紐付ける
- 「半角/全角」キーはIMEオンに紐付ける
終わりに
上記private.xmlを使った方式を編み出した先人に感謝。