1
Help us understand the problem. What are the problem?

posted at

updated at

【決定版】MacBookのUSキーボードで、左⌘をIMEオフ/右⌘をIMEオンにする(macもwindowsも)

はじめに

MacBookではUSキーボードをつかいたいのです。その際に、

  • Windowsもつかう必要があり、これはParallels上で動かしたいのです
  • macOSでもWindows 11でも、左⌘で英数入力、右⌘でかな入力に切り替えたいのです(共通化したいのです)

ところが、制約条件がいろいろあります……。

  • Karabiner-Elements(KE)で、英数/かなに割り当てると、macOSはOKですが、Paralles(Windows)は英数/かなキーのことを知りません
  • KEは、変換/無変換を出力できません
  • Microsoft IME(MS IME)は、IME-オン/IME-オフのキー設定が、変換/無変換限定です
  • MS IMEのバージョンを戻せば、柔軟にキーカスタマイズできますが、旧版をつかいたくありません
  • Google IMEは、キーカスタマイズは柔軟ですが、Edgeで日本語の入力ができません

なかなか前途が多難でありますが、まわりみちをしながら

  • macOS/Windows 共通で、左⌘で英数入力、右⌘でかな入力に切り替える
  • Windows 11に標準でついてくるMS IMEをつかう

を実現しました。

概要

  • macOS上では、左⌘英数キーに、右⌘かなキーに割り当て(Karabiner-Elements)
  • Parallelsでは、ctrl+shift+F9/F11にいったん割り当て、さらに無変換/変換にマップ

詳細

Karabiner-Elementsの設定

下記ファイルを~/.config/karabiner/assets/complex_modificationsに、ファイル名japanese(custom).jsonなどで保存します。

{
  "title": "For Japanese (日本語環境向けの設定)+ Parallels Desktop(Win)",
  "rules": [
    { "description": "コマンドキーを単体で押したときに、英数・かなキーを送信する。(左コマンドキーは英数、右コマンドキーはかな)",
      "manipulators": [
        { "type": "basic",
          "from": { "key_code": "left_command",
                    "modifiers": { "optional": [ "any" ] } },
          "to": [ { "key_code": "left_command" } ],
          "to_if_alone": [ { "key_code": "japanese_eisuu" } ],
          "conditions": [ { "type": "frontmost_application_unless",
                            "bundle_identifiers": [ "^com\\.parallels\\.desktop$",
                                                    "^com\\.parallels\\.vm$",
                                                    "^com\\.parallels\\.desktop\\.console$",
                                                    "^com\\.parallels\\.winapp\\." ] } ] },
        { "type": "basic",
          "from": { "key_code": "right_command",
                    "modifiers": { "optional": [ "any" ] } },
          "to": [ { "key_code": "right_command" } ],
          "to_if_alone": [ { "key_code": "japanese_kana" } ],
          "conditions": [ { "type": "frontmost_application_unless",
                            "bundle_identifiers": [ "^com\\.parallels\\.desktop$",
                                                    "^com\\.parallels\\.vm$",
                                                    "^com\\.parallels\\.desktop\\.console$",
                                                    "^com\\.parallels\\.winapp\\." ] } ] },
        { "type": "basic",
          "from": { "key_code": "left_command",
                "modifiers": { "optional": [ "any" ] } },
          "to": [ { "key_code": "left_command" } ],
          "to_if_alone": [ { "key_code": "f9",
                             "modifiers": ["left_shift", "left_control"] } ],
          "conditions": [ { "type": "frontmost_application_if",
                            "bundle_identifiers": [ "^com\\.parallels\\.desktop$",
                                                    "^com\\.parallels\\.vm$",
                                                    "^com\\.parallels\\.desktop\\.console$",
                                                    "^com\\.parallels\\.winapp\\." ] } ] },
       { "type": "basic",
         "from": { "key_code": "right_command",
                   "modifiers": { "optional": [ "any" ] } },
         "to": [ { "key_code": "left_command" } ],
         "to_if_alone": [ { "key_code": "f11",
                            "modifiers": ["left_shift", "left_control"] } ],
        "conditions": [ { "type": "frontmost_application_if",
                         "bundle_identifiers": [ "^com\\.parallels\\.desktop$",
                                                 "^com\\.parallels\\.vm$",
                                                 "^com\\.parallels\\.desktop\\.console$",
                                                 "^com\\.parallels\\.winapp\\." ] } ] }
        ]
    }
]
}

KEのPreference > Comples modifications > Add ruleで、上記設定を読み込みます(Enableボタンを押します)。

こちらの記事を(長年)参考にさせていただいています。
USキーボードの左右Commandキーで仮想化Windowsの英数/かな入力を切り替える - Qiita

AutoHotKey

AutoHotKeyをインストールし、Documentsフォルダに、AHK_Script.ahkなどの名前でスクリプトを保存します。

AHK_Script.ahk
#Persistent
#SingleInstance, Force
#NoEnv
#UseHook
#InstallKeybdHook
#InstallMouseHook
#HotkeyInterval, 2000
#MaxHotkeysPerInterval, 200
Process, Priority,, Realtime
SendMode, Input
SetTitleMatchMode, 2

Return

+^F9:: send, {vk1D} ; 無変換キー
+^F11::send, {vk1C} ; 変換キー

このスクリプトのショートカットを、スタートアップフォルダに入れます。

AutoHotKeyのインストールは、公式ページからインストーラをダウンロードして行いました。
AutoHotkey公式ページ

スクリプトの書き方は、下記記事などを参考にしました。
AutoHotkeyの基本設定・文法 - スズキのあしあと
『AutoHotkey』の使い方【入門編・初心者向け】 | FuchiAz.com

MS IME

無変換キー→IME-オフ、変換キー→IME-オンにします。

おわりに

あちこちに落とし穴があって、なかなか調べ甲斐がありました。2015年からこの問題に取り組み続け、数多くの紆余曲折を経てきましたが、現時点での決定版です。

そこまでしてUSキーボードを使いたいか?

ええ。ぜったいUSキーボードがいいです(断言)。

環境

  • AutoHotKey 1.1.33.10
  • Windows 11 Home 21H2
  • Parallels 17.1.1 (51537)
  • macOS Monterey 12.2.1
  • MacBook Pro (14-inch, 2021)

Register as a new user and use Qiita more conveniently

  1. You can follow users and tags
  2. you can stock useful information
  3. You can make editorial suggestions for articles
What you can do with signing up
1
Help us understand the problem. What are the problem?