0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

MacのWindows App(旧 Remote Desktop)で ⌘ + Spaceによる日英入力切替を両立させるまでの長い道のり: Microsoft Windows App × Karabiner‑Elements 活用ガイド

Last updated at Posted at 2025-04-06

1.この記事の目指す所

  • 対象読者
    • macOS を使い、⌘ + Space で Spotlight ではなく「日本語⇄英語」の入力ソースを切り替えてきた “昔ながら” の Mac ユーザー
    • Microsoft Remote Desktop が Windows App に置き換わり、リモート先(Windows)でも同じキーで IME を切り替えたい人
  • ゴール
    1. macOS 側では従来どおり ⌘ + Space で入力ソースを変更
    2. Windows App 側でも ⌘ + Space で Win + Space を送出しつつ、
      スタートメニューが誤爆しないように抑制する

補足:macOS で ⌘ + Space を Spotlight から奪還する方法

  1.  > システム設定 > キーボードキーボードショートカット
  2. Spotlight の「検索を表示」を OFF、
    入力ソースの「前の入力ソースを選択」に ⌘ + Space を割り当てる

2.最初の取り組み

2‑A.Windows 側で解決しようとした(失敗例)

アプローチ ツール/方法 結果
IME キー割り当て変更 Windows 設定 ×  Win キー単独の抑制不可
ショートカット無効化 PowerToys / AutoHotkey ×  Windows App ではフックが効かず
Win キーを封印 レジストリ編集 ×  職場 PC で管理者権限なし

2‑B.Mac 側で変換して送ろうとした(失敗例)

  • Hammerspoon で ⌘ + Space → Ctrl + Space に書き換え → OS レベルでは不可
  • Karabiner‑Elements を導入し「Windows App 使用時だけ ⌘ 無視」は成功
    • しかし ⌘ キーが殺され Mac 側へ戻る操作ができず悪循環…

3.あきらめ

いろいろなアプリを導入し、Windows側・Mac側の両方から解決策を模索してきましたが、次第に 「豆腐を切るのに、わざわざチェーンソーを持ち出しているような状態」 に思えてきて、あきらめムードが漂っていました。

しかし一度立ち止まって冷静に考えてみたところ、これまでの失敗からいくつかの気づきが得られました。
本質的な問題は、「 ⌘ + Space による入力切替はできているものの、( ⌘ キーにより)Winキー単独も同時に反応してしまい、スタートメニューが開いてしまう」という点だったのです。

「それなら、スタートメニューが開いても すぐに閉じてしまえばいいのでは?」 という発想にたどり着きました。

4.新しいアイデア

  1. ⌘ + Space を押下
  2. Windows では Win + Space が走る(IME 切替)
  3. キーを離した瞬間に Esc を送信 → スタートメニューを閉じる
    • 遅延送信では間に合わず → to_after_key_up で実装

5.ようやくたどり着いた最終解決案(Karabiner‑Elements JSON)

数々の回り道と失敗を経て――ついに、納得のいく動作にたどり着きました。
もう 「豆腐をチェーンソーで切る」 ような大げささともお別れです。

最終的にたどり着いたのは、Command + Space を押したあと、キーを離した瞬間に Escape を送るというシンプルで洗練された方法。
驚くほど自然に動作し、スタートメニューが一瞬たりとも表示されないまま、日本語・英語の入力切り替えがスムーズに完了します。

Karabiner‑Elements による設定は以下のとおりです:

{
  "description": "When using Microsoft Remote Desktop, after pressing ⌘+Space, on key-up send Escape",
  "manipulators": [
    {
      "type": "basic",
      "conditions": [
        {
          "type": "frontmost_application_if",
          "bundle_identifiers": [
            "^com\\.microsoft\\.rdc\\.macos$"
          ]
        }
      ],
      "from": {
        "key_code": "spacebar",
        "modifiers": {
          "mandatory": ["left_command"],
          "optional": ["any"]
        }
      },
      "to": [
        { "key_code": "spacebar", "modifiers": ["left_command"] }
      ],
      "to_after_key_up": [
        { "key_code": "escape" }
      ]
    }
  ]
}

この設定によって、

  • ⌘ + Space による 入力ソース切替はこれまで通り可能
  • スタートメニューの誤作動もゼロ
  • ⌘ キー自体は温存されるので Mac⇄Windows のアプリ切替もスムーズ
    という、まさに「いいとこ取り」の状態が実現しました。

使い方

  1. Karabiner‑ElementsComplex ModificationsAdd Rule
  2. 上記 JSON を ~/.config/karabiner/assets/complex_modifications/ に保存し読み込む
  3. Windows App(旧 Remote Desktop)起動中のみルールが適用される

まとめ

  • Windows App へ移行したことで「⌘ + Space 問題」が再燃したが、
    to_after_key_upEsc を送るだけのシンプル構成で解決
  • システム権限やレジストリ編集不要、Mac 側だけで完結
  • 今後 Windows App の挙動が変わる可能性もあるため、
    Karabiner‑Elements で柔軟に対応できる形にしておくと安心

ご意見・改善案があればコメントでお知らせください!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?