2016年5月8日日曜日

Paralles 11で動作するWIndows 10の英語・日本語入力の切り替え

MacOS 10.10.5(Yosemite)が動作するMac Mini+英語キーボードで、Paralles 11を使いWindows 10を利用しています。
この際、Windows 10でも、MacOSでの英語・日本語入力の切り替えキーと同じキーで切り替えをしたいのですが、私の環境では少し設定が必要でした。

検索エンジンで探すと「英語キーボードでの設定を書いた記事が少ない」といったことを書かれている方もおられるので、日本語キーボードだとまた違う現象になるのかもしれません。

以下に設定を書きます。

まず、私はMacでの日本語入力への切り替えはCtrl-Spaceを使っています。
これは、現在ではほとんどない状況ですが、Unix/Linuxシステムでシリアル端末を介して日本語入力をすることを考えてのことです。説明が長くなってしまうので簡単に書くと、シリアル端末には、Windowsの標準的な切り替えキーであるALT+`(バッククォート)で使うALTキーは、必ずしも用意されていない。MacのCommand+SPACEについても同じで、Commandキーは用意されていません。シリアル端末自体はもうほとんどないため、このような制約を考えるのはもうやめて、WindowsでもMacでも利用可能なキー、たとえばShift+SPACEなどに変えていいのかもしれません。
MacではPreference→Keyboard→Shortcuts→Input Sourcesで設定しています。
Parallelsの設定では、日本語入力の切り替えなどMacのシステムに関わるショートカットキーは、必要に応じてWindowsに送られるような設定にしています。これは、ParallesのPreference→Shortcuts→OS X System Shotcutsの「Send OS X system shortcuts:」をAutoにしています。
この状態で、Windowsのアプリケーションにフォーカスを当ててからCtrl-Spaceを押すと、Ctrl-Spaceが送られてくるはずですが、うまくいきません。たとえばGoogle日本語入力のカスタマイズ画面でCtrl-SPACEを押すとShiftが入力されたことになってしまいます。
以前に紹介したKeyHack
Windows 10(64bit)でEmacsふうキーバインドにする
http://www.sakashita-net.jp/2015/10/windows-1064bitemacs.html
というツールの内部ログでみてみると、ALTキーとシフトキーが押されたことになっています。
  
検索エンジンで探すと以下のページを見つけました。
Parallels Desktopでの言語切替の仕方(USキーボード版)
Mac OSで押されたキーをWindowsで別のキーにマップできるようです。ものは試しに、ParallesのPreference→Shortcuts→VIRTUAL MACHINESから対応するものを選び、Ctrl-SPACEをCtrl-SPACEにマップしてみました。
KeyHackのツールで見てみるとCtrl-SPACEになっています。
これであとはGoogle日本語入力やMS-IMEでCtrl-SPACEを日本語入力の切り替えになるように設定するだけです。

私は上で書いたKeyHackでEmacsふうキーバインドにしているので、この設定だと、デフォルトではCtrl-\(バックスラッシュ)が日本語入力の切り替えになっています。であれば、Ctrl-SPACEをCtrl-\(バックスラッシュ)に割り当てればよいかもしれません。
上記のように設定をしてキーを確認してみました。
 Ctrl-SPACEがCtrl-\(バックスラッシュ)になっています。

これでいくつかのアプリケーションで試しみたところ、うまくいくようです。