1.この記事の目指す所
-
対象読者
- macOS を使い、⌘ + Space で Spotlight ではなく「日本語⇄英語」の入力ソースを切り替えてきた “昔ながら” の Mac ユーザー
- Microsoft Remote Desktop が Windows App に置き換わり、リモート先(Windows)でも同じキーで IME を切り替えたい人
-
ゴール
- macOS 側では従来どおり ⌘ + Space で入力ソースを変更
-
Windows App 側でも ⌘ + Space で Win + Space を送出しつつ、
スタートメニューが誤爆しないように抑制する
補足:macOS で ⌘ + Space を Spotlight から奪還する方法
- > システム設定 > キーボード → キーボードショートカット
- 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.新しいアイデア
- ⌘ + Space を押下
- Windows では Win + Space が走る(IME 切替)
-
キーを離した瞬間に 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 のアプリ切替もスムーズ
という、まさに「いいとこ取り」の状態が実現しました。
使い方
- Karabiner‑Elements ➜ Complex Modifications ➜ Add Rule
- 上記 JSON を
~/.config/karabiner/assets/complex_modifications/
に保存し読み込む - Windows App(旧 Remote Desktop)起動中のみルールが適用される
まとめ
-
Windows App へ移行したことで「⌘ + Space 問題」が再燃したが、
to_after_key_up
で Esc を送るだけのシンプル構成で解決 - システム権限やレジストリ編集不要、Mac 側だけで完結
- 今後 Windows App の挙動が変わる可能性もあるため、
Karabiner‑Elements で柔軟に対応できる形にしておくと安心
ご意見・改善案があればコメントでお知らせください!