2017年3月5日日曜日

USキーボードのMacのコマンドキー⌘をWindowsの英数かな切替に使う

タイトルが長くなってしまいましたが、以前書いたエントリの更新で、MacOS v10.12 Sierra / Windows 10 対応版です。

MacをUSキーボードで使いたい。
でも[英数]と[かな]の切替は日本語キーボードと同じようにしたい。
で、MacとWindowsでキー操作を合わせたいので、
Parallelsで使うWindowsの[英数]と[かな]を左右のコマンドキー⌘に割り当てたい。

MacOS v10.11 El Capitan までは、 Karabiner という神アプリが使えた。 Karabiner には特定のアプリ使用時にだけキーをリマップする(あるキーに別のキーを割り当てる)設定がある。そこで、普段は左右コマンドキー⌘単独押しを[英数][かな]に割り当てる一方で、Parallelsのときだけは特殊なキーの組み合わせに割り当て、それをIME側の設定でIME On/Offに割り当てることで、上記の動作を実現していた。

MacOS v10.12 Sierra では、 Karabiner が今のところ使えない。民が困って右往左往していたところ、⌘英かなという新たな神が現れ、Macの左右コマンドキー⌘に[英数][かな]を割り当てるのは簡単にできるようになった。しかし⌘英かなには、特定のアプリにだけリマップを設定する機能が現状無いので、これまでと同じようにはできない。

調べてみても、英数/かなのトグルキーを設定する、Ctrl + Space を割り当てるなど、「USキーボードのMacでWindowsの日本語入力切替を快適にする方法」はあっても、「USキーボードのMacの左右コマンドキー⌘でのWindowsの英数かな切替方法」は見つからず、しばらく不便を忍んでいたのだけど、あれこれ考えてできたのでメモ。

環境

  • MacOS v10.12 Sierra
  • Windows 10
  • Parallels 11
  • Windowsのキーリマップアプリ(ChangeKeyを使用)
  • Google日本語入力(MS IME, ATOKでもできるはず)

手順

  1. ⌘英かなで、Parallelsを除外設定し、左右⌘単独押しを左右Winに戻す。
  2. キーリマップアプリで、左Winに[F13]、右Winに[F14]を割り当てる。
  3. Google日本語入力で、[F13]にIME無効化、[F14]にIME有効化を割り当てる。

1. ⌘英かなの設定(Macのキーリマップ)

Macに⌘英かなをインストールする。実行するとメニューバーに[⌘]の印が出る。右クリックして[Preference]を選択し、[Exclusion Apps]タブで、 Parallels Desktop にチェックを入れる。

これで、

  • Parallels以外では、
    左コマンドキー⌘単独押しは[英数]キー、
    右コマンドキー⌘単独押しは[かな]キー
  • Parallelsでは、
    左コマンドキー⌘単独押しは左[Windows]キー
    右コマンドキー⌘単独押しは右[Windows]キー
という状態になる。

なお、コマンドキー⌘と他のキーを同時に押した場合、たとえば [⌘]+[v]  のような常用のショートカットについては、Parallels が [Control]+[v] に変換して Windows に送信するので、左右コマンドキー⌘はWindowsでは[Control]キーのように使える。これは以下の設定をしても変わらない。

2. ChangeKeyの設定(Windowsのキーリマップ)

左右のWinキーは特殊なキーなので、そのままではIME On/Off 切り替えに使うことができない。そこで、Windowsの側でキーを置き換える。置き換え先は何でもいいのだけど、目的にずばり一致するキーである[英数]や[かな]や[変換]や[無変換]はどうやら使えない。これらのキーはUSキーボードには存在しないので、WindowsがUSキーボード(101/102)を使っていると認識している場合には、コードがうまく伝わらないらしい。そこで、もともとキーボードになく、あまり他のショートカットと干渉しなさそうなファンクションキーの[F13][F14]と置き換えてみる。

ChangeKeyは非常駐型のキーリマップアプリで、レジストリを書き換えて、キーのリマップを実現するもの。ChangeKeyを管理者権限で実行する(右クリック→[管理者として実行]、ちょっと時間がかかる)。すると割当元キーを選択する画面が出る。

左Winを選択すると、割当先キーを選択する画面が出る。

ここで右上のScanCodeという画面上の小さなキーを押すと、スキャンコードを入力する画面が出る。[F13]は[0x0064]なので、そのように入力する。同様に、右Winには[F14]のスキャンコード[0x0065]を割り当てる。その他のFnキーのコードはこちらに一覧がある。

先程のキーボードの画面に戻るので、メニューバーの[登録]を押して編集結果を登録する。そしてWindowsを再起動する。これで、Windowsで左コマンドキー⌘を単独で押すと[F13]、右コマンドキー⌘を単独で押すと[F14]という状態になった。なお、Windowsにどのようなキーが送信されているかはKeyMillのようなアプリで確認できる。

3. Google日本語入力の設定(IMEの設定)

最後に、WindowsのIMEの設定で、[F13]にIMEの無効化、[F14]にIMEの有効化を割り当てる。Google日本語入力の場合、Windowsのタスクトレイの「あ」の字の上で右クリックして[プロパティ]を押して設定画面を開く。[一般]タブ→[キー設定]の[編集]ボタンを押して、キー設定画面を開く。

左下[編集]→[エントリの追加]で新しいキー入力設定が追加できるので、以下を追加する。

これで完了。エディタ等を一度終了して開き直せば、

  • Windowsで左コマンドキー⌘を単独で押すと英数入力(IME Off)
  • Windowsで右コマンドキー⌘を単独で押すとかな入力(IME On)

になっているはず。

参考:
Change KeyによるCapsLockなどのキー置換(shobon's blog)
Windows 10で右Altキーを Google IME ON/OFFに割り当てる方法
USキーボードのOS XとParallelsで動いているWindowsのIMEをCapsLockでトグルする(Qiita)

ひとつ問題は、うちの環境では、反応が遅いこと。IME切替後に一呼吸おいて入力しないと、切り替えが間に合わずスルーされてしまうことがある。KeyMillでみたところWindowsにキーコードが送信された後はすぐに反応しているので、問題はMac側にありそう。そして⌘英かなを終了させてもやはり遅いので、原因はParallelsとみられる。よりよい方法があったらぜひお知らせください。

追記:
2019年1月にPCを移行する際、Mac OS 10.14 (Mojave) と Windows 10 で改めて上記の設定をしたところ、うまくいったので、現在もこの方法は有効のようです。Windows側の設定はParallelsの仮想マシンに保存されるので、移行もそれほど大変ではなかったです。

1 件のコメント:

  1. 同じ状況で困っていましたが、こちらの方法で無事に解決しました!!嬉しいです、ありがとうございます^^

    返信削除