give IT a try

プログラミング、リモートワーク、田舎暮らし、音楽、etc.

MacBook USキーボード+Boot Camp or VirtualBox+Windows 10で左右コマンドキーを使ってIMEを切り替える方法

はじめに

僕はMacユーザーです。さらにUSキーボードユーザーです。

MacのJISキーボードではスペースバーの左右に「英数」キーと「かな」キーがあり、これでIMEを切り替えることができます(英数でIME-オフ、かなでIME-オン)。
しかし、USキーボードの場合、スペースバーの左右にはコマンドキーが配置されており、「英数」と「かな」はありません。
そこで僕はKarabiner-Elementsを使って左右のコマンドキーにそれぞれ「英数」と「かな」を割り当てています。

さらに、頻度はそこまで多くありませんが、たまにMac上でWindowsを使う場合があります。
Windowsを起動するのはBoot CampでOSごと切り替えてしまう場合と、VirtualBoxを使ってmacOS内でWindowsを立ち上げる場合の2パターンがあります。

Mac環境と同じように、Windowsでも左右のコマンドキーでIMEを切り替えたいな〜と思ったので方法を調べてみました。

左右コマンドキーでWindows IMEを切り替える方法

PowerToysの設定

Windows上でPowerToysというツールをインストールします。

learn.microsoft.com

PowerToysを起動し、左サイドメニューの「Keyboard Manager」を選択、それから「キーの再マップ」を選択します。
プラス(+)ボタンをクリックし、以下の設定を追加します(VirtualBoxの場合は注意点があるので後述します)。

  • Win (Left) → IME Non-Convert
  • Win (Right) → IME Convert
  • Caps Lock → Win (Left)

設定が完了すると次のようになります。

なお、「Caps Lock → Win (Left)」はWindowsキーに相当するものがなくなってしまうので、ふだん使わないCaps LockキーにWindowsキーを割り当てただけです。この設定は任意です。

Windows IMEの設定

次に、画面右下のIMEアイコンを右クリックし、設定を開きます(注:僕が使っているIMEはWindows標準のIMEです。Google 日本語入力ではありません)。

「キーとタッチのカスタマイズ」をクリックします。

「キーの割り当て」で以下のように設定します。

  • 各キーに好みの機能を割り当てる = オン
  • 無変換キー = IME-オフ
  • 変換キー = IME-オン

これでWindows環境でも左右コマンドキーを使ってIMEが切り替えられるようになるはずです。

VirtualBoxの場合の注意点

VirtualBox上でWindowsを動かしている場合は、デフォルトで左コマンドキーがHost Keyに割り当てられていると思います。
そのため、左コマンドキーを押してもIMEが切り替わりません。
そこで(ふだんHost Keyを使っていないことが前提ですが)左コマンドキーのHost Key設定を解除します。

Virtual Boxの画面左下にある⬇️ボタンをクリックします。

Host Key Combination欄にある消しゴムマーク(?)をクリックします。

"None"に変わったらOKボタンをクリックして変更を確定します。

これでVirtualBox上でも左コマンドキーでIME-オフが実現できます。

確認環境(Boot Camp)

  • MacBook Pro 13-inch, 2017
  • Windows 10 Home
    • バージョン 22H2
    • OS ビルド 19045.2311
    • エクスペリエンス Windows Feature Experience Pack 120.2212.4190.0
  • PowerToys v0.65.0

確認環境(VirtuaBox)

  • MacBook Pro 13-inch, 2017
  • macOS Ventura 13.0.1
  • VirtualBox 7.0.4 r154605 (Qt5.15.2)
  • Windows 10 Home
    • バージョン 21H2
    • OS ビルド 19044.1645
    • エクスペリエンス Windows Feature Experience Pack 120.2212.4170.0
  • PowerToys v0.65.0