devAlice
← Multi-OS

Mac ↔ Windows キーボードマッピング — Karabiner + PowerToys Keyboard Manager

2つの OS にまたがる Cmd ↔ Ctrl の溝を埋める。Karabiner-Elements(Mac)と PowerToys Keyboard Manager(Windows)のセットアップと5つのよく使うリマッピング。

Mac と Windows を両方使う人が感じる最大の摩擦 — Cmd ↔ Ctrl の食い違い。macOS はコピーに Cmd + C、Windows は Ctrl + C を使う。Mac では Ctrl が左下の押しにくい位置にあり、Windows では Win キーはほとんど使われない。一方の OS に慣れるともう一方でキーを打ち間違え続けることになる。キーマッピングの本質はカスタマイズではなく、認知負荷の排除にあると考える — 両 OS で同じキーが同じ動作をすれば、OS の切り替えに脳のリソースを使わなくて済むからだ。

このガイドでは Karabiner-Elements(Mac)と PowerToys Keyboard Manager(Windows)を使い、両 OS のキー動作を統一する。よく使う5つのリマッピング + アプリ別マッピング + トラブルシューティングを網羅。

対象読者:Mac と Windows を両方使う開発者。外付けキーボード(HHKB、Filco など)のユーザーにも同様に適用できる。

TL;DR

  1. Mac:Karabiner-Elements(brew install --cask karabiner-elements
  2. Windows:PowerToys バンドル(winget install Microsoft.PowerToys)→ Keyboard Manager
  3. 同じ物理キー → 同じ動作に統一(Cmd ↔ Ctrl を揃える)
  4. 外付けキーボードはレイヤー / ディップスイッチで OS を自動切り替えできる
  5. 企業ポリシーで PowerToys が使えない場合は AutoHotkey を代替として使う

前提条件

  • macOS 14+ および Windows 11 22H2+ の両機
  • 両機での管理者権限

1. アプローチ — どちら側が合わせるか?

3つの選択肢:

A. Mac を Windows のように感じさせる(Windows ユーザーが Mac を使い始めた場合)

  • Karabiner で Cmd → Ctrl にマップ
  • 一部の Mac ネイティブショートカットが壊れる(Spotlight など)
  • 推奨度:中

B. Windows を Mac のように感じさせる(Mac ユーザーが Windows を使わざるを得ない場合)

  • PowerToys で Win → Ctrl(または逆)にマップ
  • 一部の Windows ネイティブショートカットが壊れる(Win + Tab など)
  • 推奨度:中

C. 両方を適度に調整する(最も一般的)

  • 各 OS のネイティブキーを尊重し、毎日使うショートカットだけを統一する
  • 学習コストが最も低い
  • 推奨度:高

このガイドはアプローチ C を中心に解説する。A と B も同じセットアップで、マッピングテーブルを変えるだけで対応できる。


2. Mac — Karabiner-Elements のセットアップ

2.1 インストール

brew install --cask karabiner-elements

または karabiner-elements.pqrs.org からダウンロード。

初回起動時に5種類の macOS 権限を求められる:

  • 入力監視(Karabiner)
  • 入力監視(Karabiner-EventViewer)
  • アクセシビリティ(Karabiner)
  • アクセシビリティ(karabiner_grabber)
  • Developer Tools(任意)

システム設定 → プライバシーとセキュリティ → それぞれを許可する。

2.2 キーボード検出

Karabiner は外付けキーボードを自動検出する。Settings → Devices に一覧が表示される。

2.3 Simple Modifications

Simple Modifications タブでペアを追加する。

FromTo
right_controlright_command
caps_lockescape(vim ユーザーは control
right_optionright_command(任意 — Cmd エリアを広げる)

2.4 Complex Modifications

条件付きマッピングは JSON で定義する。~/.config/karabiner/karabiner.json を編集するか GUI から追加する。

よく使う例:外付けキーボードで「Cmd + キー」を Windows スタイルの「Win + キー」として動作させる:

{
  "description": "Map left_command to left_control (for Windows layout keyboard)",
  "manipulators": [
    {
      "type": "basic",
      "from": { "key_code": "left_command" },
      "to": [{ "key_code": "left_control" }],
      "conditions": [
        {
          "type": "device_if",
          "identifiers": [
            { "vendor_id": 1278, "product_id": 33 }  // 外付けキーボードの ID
          ]
        }
      ]
    }
  ]
}

外付けキーボードのベンダー ID / プロダクト ID は Karabiner-EventViewer で確認できる。


3. Windows — PowerToys Keyboard Manager

3.1 PowerToys のインストール

winget install Microsoft.PowerToys

または github.com/microsoft/PowerToys

3.2 Keyboard Manager を有効化

PowerToys を起動 → 左メニュー → Keyboard ManagerEnable Keyboard Manager をトグル。

3.3 キーのリマップ

Remap a key をクリック → ペアを追加。

キーリマップ先
Caps LockEsc
Right CtrlRight Win(Mac の Cmd の位置に対応)
Right AltRight Ctrl

3.4 ショートカットのリマップ

Remap a shortcut — コード対コード。

よく使う例:macOS の Cmd + Space(Spotlight)→ Windows の Alt + Space(PowerToys Run):

FromTo
Win + SpaceAlt + Space
Win + CCtrl + C
Win + VCtrl + V
Win + TabAlt + Tab

「Target App」を空にするとグローバルに適用される。特定アプリにのみ限定したい場合はプロセス名を入力する。

3.5 AutoHotkey 代替(PowerToys がブロックされている場合)

AutoHotkey は同じ効果を持つ単一の EXE。mac-like.ahk

; Win+キーを Mac スタイルの Ctrl+キーとして動作させる
LWin & c::Send ^c
LWin & v::Send ^v
LWin & x::Send ^x
LWin & z::Send ^z
LWin & a::Send ^a
LWin & s::Send ^s
LWin & Space::Send !{Space}  ; PowerToys Run

mac-like.ahk を実行 → システムトレイに常駐する。


4. 5つのよく使うリマッピング(推奨)

両 OS で適用:

目的Mac(Karabiner)Windows(PowerToys)
Caps Lock → Esccaps_lockescapeCaps Lock → Esc
右モディファイアを広げるright_optionright_commandRight Alt → Right Ctrl
左モディファイアを広げる(デフォルト)Right Ctrl → Right Win
IME トグル(外付けキーボード)right_commandf19 + IM ショートカット(Windows ネイティブ IME トグル)
新規タブの一貫性(デフォルト Cmd+T)(PowerToys:Ctrl+T を維持)

5. 外付けキーボード — OS 自動切り替え(任意)

一部のキーボード(HHKB、Niz Plum など)はディップスイッチや OS モードキーによって OS に合わせたレイアウトに切り替えられる。

HHKB Professional Hybrid

  • 背面のディップスイッチ、またはデバイス上の Fn+Q/W/E
  • Mac モード / Win モード / Lite モード

Niz Plum

  • デバイス上の Fn+/、またはソフトウェアでのレイアウト切り替え

QMK/VIA カスタムキーボード

  • VIA / QMK ファームウェアでレイヤーごとのマッピング
  • USB ケーブルのポート(接続先 PC が認識される)で自動切り替え

外付けキーボード自体に OS モード切り替え機能がある場合、Karabiner / PowerToys の設定は最小限で済む。


6. アプリ別マッピング(よく使うパターン)

macOS — Karabiner の frontmost_application_if

特定のアプリでアクティブになるマッピング:

{
  "description": "VS Code only: Cmd+B → Ctrl+B (same shortcut as Linux/Win)",
  "manipulators": [
    {
      "type": "basic",
      "from": { "key_code": "b", "modifiers": { "mandatory": ["left_command"] } },
      "to": [{ "key_code": "b", "modifiers": ["left_control"] }],
      "conditions": [
        {
          "type": "frontmost_application_if",
          "bundle_identifiers": ["^com\\.microsoft\\.VSCode$"]
        }
      ]
    }
  ]
}

Windows — PowerToys の Target App

Remap a shortcutTarget App をプロセス名で指定:

  • VS Code:Code.exe
  • Chrome:chrome.exe
  • WSL:wt.exe(Windows Terminal)

7. 検証

Mac

# Karabiner が動作しているか確認
open /Applications/Karabiner-EventViewer.app
# → キーを押すとイベントが表示される。マッピングが from → to の変換として表示される。

Windows

  • PowerToys → Keyboard Manager → リマッピングリスト
  • テキストフィールドに入力し、リマップされた動作を確認
  • (AutoHotkey)システムトレイに緑の H アイコン

8. トラブルシューティング

macOS Sequoia が Karabiner の権限を何度も取り消す

  • macOS のアップデート後、セキュリティモデルが権限を再プロンプトすることが多い
  • システム設定 → プライバシーとセキュリティ → 入力監視 / アクセシビリティで Karabiner を一度 OFF → ON に切り替える
  • または Karabiner を再インストールする

PowerToys Keyboard Manager が一部のアプリで動かない

  • 管理者権限で動作しているアプリ(一部のゲームなど)は PowerToys のリマップをバイパスする
  • PowerToys 自体を管理者として実行する(トレイアイコン → 管理者として再起動)

マッピング後、外付けキーボードだけがおかしくなる

  • Karabiner:Devices でそのキーボードを選択し「Modify events from this device」にチェック
  • PowerToys:ベンダー固有のキー(例:Logitech G502 のサイドボタン)はリマップできない

macOS の IME トグルキーが動かなくなる

  • システム設定 → キーボード → 入力ソース → ショートカット:IME トグルを確認
  • Karabiner で外付けキーボードの right_command を IME トグルにマップ:
    {
      "from": { "key_code": "right_command" },
      "to": [{ "key_code": "japanese_kana" }]   // 日本語 IME に認識される
    }

Windows の Win + L(ロック)がリマップされた

  • セキュリティ上の予約済みショートカット。PowerToys のリマップは傍受できない(Windows が優先する)
  • AutoHotkey でも上書きできない
  • 回避策なし — 別のショートカットを割り当てる

Bluetooth キーボード共有時に Mac と Windows の IME が衝突する

  • 同じ Bluetooth キーボードを両機にペアリングしていると、最後に使った OS の IME 状態が残る
  • キーボードの OS モードトグルで切り替える(HHKB なら Fn+Q/W/E)
  • またはいったんペアリングを解除して再ペアリングする

9. 次のステップ


参考資料

更新履歴

  • 2026-05-16:初稿。Karabiner + PowerToys インストール + 5つのよく使うリマッピング + アプリ別 + 外付けキーボード + 6つのトラブルシューティング事例。