~saiya/hatenablog

No Code, No Life.

英字配列キーボードな Mac でのキーボード設定 (with Windows VM)

Macbook を買う際には英字配列キーボードにしているのだが、その際のキーボード設定のやり方を毎回忘れてしまうのでメモがてら記事にした。

この設定をすることで、英字キーボードでありながら、日本語入力の On/Off を素早く切り替えることが可能になる。

以下の手順は Mac OS XWindows VM (VMWare Fusion) 環境で実践済みの手順だが、Mac/Windows 単独といった別の環境でも有用なはず。

この設定で実現されること

  1. 左 Command を「英数」、右 Command を「かな」キーとして使う
    • ただし、Command + 何かのキー の場合には普通の Command キーとして機能する
    • また、VM 系のソフトに対してのみはこのマッピングを適用しない
  2. Windows VM 側では右 Alt を「全角/半角」キーとして使う
    • VM 利用中は Command キーをそのまま使える (Windows キー扱いになる)

なお、もっと凝った設定をすることでより改善することもできるが、ここでは比較的手間のかからない方法を採用している。

1. 左 Command を「英数」、右 Command を「かな」キーとして使う

Karabiner (旧名 KeyRemap4MacBook) を使う。

Karabiner には「左右のコマンドキー(⌘)を「英数/かな」としても使う」という大変便利なキーマッピング設定がデフォルトで用意されており、VM を使わないならばこれで十分である。

しかし、Windows VM を使っている際にこの設定が適用されると残念なことになる*1ため、以下のようにして VM 系のソフト以外のみに上記設定を適用する:

  1. Karabiner (旧名 KeyRemap4MacBook) をインストール
  2. Karabiner の設定画面を開く
  3. "Misc & Uninstall" タブを開く
  4. "Open private.xml" し何らかのテキストエディタxml を開く
  5. 後述の XML をペーストし保存
  6. "Change Key" タブを開く
  7. "Reload XML" ボタンを押す (エラーになった場合 4 での XML 編集からやり直す)
  8. 検索ボックスに "コマンドキー" と入れて検索
  9. "コマンドキーの動作を優先モード v1 (VM 対策版)" または "コマンドキーの動作を優先モード v2 (VM 対策版)" を有効にする

v1 と v2 どちらにするかはお好みで。 個人的には、v1 の方がさくさく操作できるのだが、稀に誤爆して辛いので v2 のほうが無難*2という印象。

以下 private.xml の中身:

<?xml version="1.0"?>
<root>
  <item>
    <name>For Japanese</name>
    <item>
      <name>左右のコマンドキー(⌘)を「英数/かな」としても使う (VM 対策版)</name>
      <appendix>(左コマンドキーを英数キーにする)</appendix>
      <appendix>(右コマンドキーをかなキーにする)</appendix>

      <item>
        <name>コマンドキーの動作を優先モード v2 (VM 対策版)</name>
        <not>VIRTUALMACHINE</not>    <!-- ここが増えてるだけ -->
        <appendix>(コマンドキーの空打ちで「英数/かな」)</appendix>
        <appendix>(コマンドキーを押している間に他のキーを打つと通常のコマンドキーとして動作。</appendix>
        <appendix>ただし、他のキーを離す前にコマンドキーを離した場合は「英数/かな」として扱う。)</appendix>
        <identifier>remap.japanese_command2eisuukana_prefer_command_v2.nonvm</identifier>
        <autogen>
          __KeyOverlaidModifier__
          KeyCode::COMMAND_L,
          KeyCode::VK_CONFIG_SYNC_KEYDOWNUP_notsave_japanese_command2eisuukana_prefer_command_v2, ModifierFlag::COMMAND_L,
          KeyCode::JIS_EISUU,
        </autogen>
        <autogen>
          __KeyOverlaidModifier__
          KeyCode::COMMAND_R,
          KeyCode::VK_CONFIG_SYNC_KEYDOWNUP_notsave_japanese_command2eisuukana_prefer_command_v2, ModifierFlag::COMMAND_R,
          KeyCode::JIS_KANA,
        </autogen>
      </item>

      <item><name>──────────────────────────────</name></item>
      <item>
        <name>コマンドキーの動作を優先モード v1 (VM 対策版)</name>
        <not>VIRTUALMACHINE</not>    <!-- ここが増えてるだけ -->
        <appendix>(コマンドキーの空打ちで「英数/かな」)</appendix>
        <appendix>(コマンドキーを押している間に他のキーを打つと通常のコマンドキーとして動作)</appendix>
        <identifier>remap.jis_command2eisuukana_prefer_command.nonvm</identifier>
        <autogen>__KeyOverlaidModifier__ KeyCode::COMMAND_L, KeyCode::COMMAND_L, KeyCode::JIS_EISUU</autogen>
        <autogen>__KeyOverlaidModifier__ KeyCode::COMMAND_R, KeyCode::COMMAND_R, KeyCode::JIS_KANA</autogen>
      </item>
    </item>
  </item>
</root>

2. Windows VM 側では右 Alt を「全角/半角」キーとして使う

AutoHotkeyを使う。

これによって右 Alt で 全角/半角 操作が可能になる。

先述の設定で Mac 側では左右の Command で英数/かなを切り替えており、それと同じキーにならない点は多少気持ち悪い設定ではあるが、

  • スペースバーの横のキー(Command)は Windows キーにしておきたい
  • "全角/半角" と "英数", "かな" は別物でもいいのではないか (キーの数からして違うし) *3

という理由で筆者は VM では右 Alt にしている。

AutoHotkey の設定方法は以下:

  1. AutoHotkey をインストール
  2. スタートメニュー > すべてのプログラム > スタートアップ
  3. スタートアップを右クリックし「開く (O)」
  4. メモ帳等で "RAlt::vk19" (引用符は不要)とだけ書いたファイルを書く
  5. "右Altを全角半角にする.alt" といった名前で上記フォルダに保存
  6. ダブルクリックで "右Altを全角半角にする.alt" を実行

これで、Windows VM 側では右 Alt で IME を切り替えることができるようになる。

*1:Windows キーと IME の切り替え操作がバッティングする。例えば VMWare Fusion の場合なんと Windows キーと全角/半角キーをを同時に押した扱いになる。

*2:例えば「かな」キーの直後に W を押す操作をした場合、タイミング次第では v1 だと Command + W 扱いになってしまい作業中のウインドウを閉じることになる

*3:IME 側の設定も含めて頑張れば 英数, かな キー操作を Windows 側でも出来る。が、めんどいので最近そこまではやってない。