IME 切替 on MacBook Pro + VMware Fusion + Windows Guest


まとめ

  • VMware Fusion のゲスト OS としてインストールした Windows において、キーボードによる IME 切替ができない
  • Windows において英語キーボード利用時の IME 切替は Alt+`(BackQuote, GraveAccent, Accent Grave)
  • VMware Fusion のコマンド [ウインドウを巡回] のショートカット キーに Alt+` が割り当てられている
  • このショートカット キーを無効にすれば Alt-` のキーイベントをゲスト OS に渡すことが出来、英語キーボードによる IME 切替を行うことが出来るようになる

はじめに

今月、Mac が新しくなり 13 inch MacBook Pro Retina になったので、様々なセットアップを行っていました。その作業の中で IME の切替を Alt-` で行えずに嵌まったので、自戒を込めてメモを残します。

学生時代に NewsOS+Emacs+Canna の組み合わせで慣れてしまったキーバインドで、社会人生活を過ごして もう 1x 年が経とうととしています。Windows と Mac OS で、それぞれ以下のソフトウェアで Emacs+Canna 風味のキーバインドを実現しています。

  • Windows: のどか (窓使いの憂鬱の後継) + ATOK [自力で Cannna 風味のキーアサインを作成] on VMware Fusion
  • Mac OS: Karabiner (旧 KeyRemap4MacBook) + ATOK [自力で Cannna 風味のキーアサインを作成]

この Windows 環境で IME の切替が Alt-` で行えずド嵌まりします

症状

英語キーボードでの IME 変換は Alt-` で通常行えます。しかし、VMware Fusion 内の Windows ゲストで IME の変換を Alt-` で行えません。

解決方法

これは VMware Fusion のコマンドの一つ [ウインドウを巡回] のキーアサインが Alt-` となっているためです。このキーアサインのために Alt-` のキーイベントを VMware Fusion が拾ってしまい、Windows ゲストにまで Alt-` のキーイベントが届きません。Windows ゲストは Alt-` のキーイベントを受け取っていないため、当然 IME の切替を行わないという顛末です。

対応としては、2 つあります。

  • VMware Fusion のコマンド [ウインドウの巡回] のショートカットを無効にする
  • VMware Fusion のコマンド [ウインドウの巡回] のショートカットを Alt-` 以外に割り当てる

いずれかの対応を適用することで Alt-` で IME の切替を行うことが出来ます。

このとき、Fusion の設定で、上記変更を施した「キーボードとマウスのプロファイル」と仮想マシンに設定されている「キーボードとマウスのプロファイル」が一致していることを確認してください。このプロファイルがずれていると、意図した動作を期待できません。

「キーボードとマウスのプロファイル」は、[メニュー バー] > [VMware Fusion] > [環境設定…] > [キーボードとマウス] と辿った以下の画面で行います。

VMware Fusion Preference for keyboard mouse

仮想マシンに設定されているプロファイルは、仮想マシンを [仮想マシンのライブラリ] などで選択した後に、[メニューバー] > [仮想マシン] > [設定…] > [キーボードとマウス] と辿り、以下の画面で確認できます。

VMware Fusion VM Setting for Keyboard & Mouse

その他

VMware Fusion では、任意のキーのマッピング変更が行えたり、Mac 自体のショートカットはゲストに送らない機能があります。Alt-` だけでなく、他のキーイベントも意図せずゲスト OS が受け取れていないと思ったらば、以下を確認すると良いでしょう。

[メニュー バー] > [VMware Fusion] > [環境設定…] > [キーボードとマウス] > [キーマッピング]/[Mac ホスト ショートカット]

私は、左 Alt と 左 Windows を以下のように入れ替えています。

VMware Fusion Swap Left Alt Key and Left Windows Key

コメントを残す