Karabiner-Elementsで
ControlキーがCommandキーになった
(macOS Sequoiaとの互換性)

macOS Sequoia 15にアップデート後、Karabiner-Elementsで予期しない現象が発生しました。
Karabiner-Elementsとは、macOSでキーボードのキーを自由に割り当て直せるカスタマイズツールです1
ControlキーがCommandキーとして認識される問題が起きていました。

「Ctrl+C」でコピーしようとすると「⌘+C」として動作します。
Karabiner-Elementsを終了すると正常に戻るため、アプリ起動時のみ発生する現象でした。

設定を確認しても、ControlキーをCommandキーにマップする設定は存在しません。
Simple ModificationsもComplex Modificationsも空の状態でした。

関連記事

1. バグの特定

当初は設定ファイルの調査やKarabiner-EventViewerでのログ確認を行いました。
Karabiner-EventViewerとは、Karabiner-Elementsに付属するツールで、実際に送信されているキーイベントをリアルタイムで確認できます2
明確な原因は特定できず、問題がmacOS Sequoiaとの互換性にあると判明したのは、アップデートによって解消した後でした。

2. 15.3.0での修正

Karabiner-Elements 15.3.0のリリースノートには「ファンクションキーを通常のf1…f12キーとして動作させる設定時の動作を修正」と記載されていました。
このバージョンは2024年10月28日にリリースされています3

この修正により、仮想キーボードとmacOSのシステム設定の間で起きていた不適切な設定共有が解消されました。

3. macOS Sequoiaの影響

3.1. キーボードショートカットの制限

macOS Sequoiaでは、サンドボックス化されたアプリケーションでのキーボードショートカット登録に新しい制限が加わりました。
OptionキーやShiftキーのみを使用するショートカットが禁止されています。
この制限はサンドボックス外のアプリには適用されないため、Karabiner-Elements自体は直接影響を受けませんが、Mac App Store経由で配布されるサードパーティアプリは広く影響を受けました4

この変更はキーロガー型マルウェアによる入力監視を制限する目的で実装されました。
特に、Shift+Optionで生成される特殊文字(Øなど)がパスワードに含まれる場合の盗聴を防ぐためです。
ただし開発者コミュニティからは「マルウェアはそもそもサンドボックスを使わない」という批判が多く寄せられており、Appleのフォーラムでも議論が続いています5

3.2. ドライバーエクステンションの厳格化

Sequoiaでは、ドライバーエクステンションの許可システムも変更されました。
ドライバーエクステンション(DriverExtension)とは、旧来のカーネル拡張(kext)に代わる現代的な仕組みで、macOS Big Sur以降にAppleが推進しているドライバー開発の方式です6
macOS Sequoiaでは拡張機能の許可場所が「プライバシーとセキュリティ」から「ログイン項目と機能拡張」に移動しており、これが許可設定の迷子を招いた一因でもあります7
この変更により、多くのユーザーがKarabiner-Elementsの動作不良を経験しています。
システム再起動後にドライバーが正常に読み込まれない問題が頻発しました。

3.3. 入力デバイス認識の変更

macOSの入力システム自体も変更され、サードパーティ製の仮想キーボードデバイスの認識方法が変わりました。
これが今回の問題の直接的な原因となります。

4. Karabiner-Elementsの対応と副作用

4.1. 仮想キーボードの仕様変更

macOS Sequoiaとの互換性を保つため、Karabiner-Elements 15.1.0では仮想キーボードの識別情報を変更しました8

仮想キーボードとは、Karabiner-Elementsが内部で作成する架空のキーボードです。
実際のキー入力を一旦受け取り、設定に従って変換してからmacOSに送信します。

4.2. Vendor IDとProduct IDの変更

15.1.0では、仮想キーボードのVendor IDとProduct IDをApple Aluminum USB Keyboard(A1243)と同じ値に変更しました。
A1243は2007年から2021年まで販売されたAppleの有線USBキーボードで、多くのMacユーザーが過去に使用していたモデルです9
fnキーまわりの動作を改善するためでしたが、予期しない副作用が生じました。

4.3. macOSの混乱

macOSは接続されたキーボードのVendor IDとProduct IDを参照して、そのキーボード専用の設定を適用します。
仮想キーボードがAppleキーボードと同じIDを持つようになったため、macOSは過去の設定を仮想キーボードにも適用するようになりました。

以前にApple Aluminum USB Keyboardを使用していて、そのときにControlキーとCommandキーを入れ替える設定をシステム環境設定で行っていた場合、その設定が仮想キーボードにも影響するようになったのです。
この問題に気づいた場合、システム設定の「キーボード > キーボードショートカット > 修飾キー」からApple Aluminum USB Keyboard向けの設定を確認・修正することで回避できます10

5. 技術的な詳細

5.1. HIDレベルでの問題

HID(Human Interface Device)は、キーボードやマウスがコンピュータと通信するための標準規格です。
USB Implementers Forum(USB-IF)が定める仕様で、対応デバイスは追加ドライバーなしでOSに認識されます11
この低レベルな通信において、仮想キーボードの識別情報変更がmacOSに予期しないキーマッピングを適用させる原因となりました。

macOS Sequoiaの厳格化されたセキュリティポリシーと新しい仮想キーボードIDが組み合わさることで、システムが既存の修飾キー設定を誤って適用するようになっています。

5.2. デバイス認識の仕組み

macOSはキーボードデバイスを識別する際、Vendor IDとProduct IDの組み合わせを使用します。
Vendor IDはUSB-IFが各メーカーに割り当てる製造者固有のコードで、Product IDはメーカーが自社製品ごとに付ける番号です12
同じIDを持つデバイスには同じ設定が共有されます。

仮想キーボードがAppleキーボードと同じIDを持つことで、システム設定の「キーボード > 修飾キー」で設定した内容が仮想キーボードにも適用されるようになりました。
これが意図しないキー入れ替わりの直接的な原因でした。

6. 結果

アップデート後、ControlキーとCommandキーの入れ替わり問題は完全に解消されました。
Karabiner-Elementsは現在も活発に開発が続いており、2026年1月時点での最新版は15.9.0です13
Karabiner-Elementsのような低レベルなシステム機能を扱うアプリケーションでは、OSの変更への対応が複雑になることがよくわかる事例です。

  1. Karabiner-Elementsは高橋文彦氏が開発・メンテナンスしているオープンソースのキーボードカスタマイズツールです。Simple Modificationsによる単純なキーの置き換えから、Complex Modificationsによる複雑なルール設定まで対応しています。 – Karabiner-Elements 公式サイト
  2. Karabiner-EventViewerは、Karabiner-Elementsに同梱されているデバッグ用ツールです。物理キーボードからの入力と、仮想キーボードが送出するイベントの両方を可視化でき、キーマッピングのトラブルシューティングに利用します。 – Confirm the result of configuration (EventViewer) | Karabiner-Elements
  3. Karabiner-Elements 15.3.0では、ファンクションキーの動作修正に加えて「Use all F1, F2, etc. keys as standard function keys」が有効な際のキー名表示も改善されました。 – Karabiner-Elements v15.3.0 – SourceForge Mirror
  4. この制限はmacOS Sequoia 15.0で導入されましたが、macOS 15.2でOptionキーのみを使用するショートカットについては制限が撤回されたとの報告があります。 – Keyboard Shortcuts using Option and/or Shift Modifiers Only No Longer Allowed on macOS Sequoia – Eternal Storms Software
  5. AppleのフレームワークエンジニアはApple Developer Forumsで「この変更はキーロガーによる他アプリへのキー入力監視を制限するための意図的な変更」と説明しています。一方で、サンドボックスで動くマルウェア自体が稀であるため、正規アプリのみが被害を受けるという指摘が多数集まりました。 – [macOS Sequoia] Using RegisterEventHotkey with option… | Apple Developer Forums
  6. AppleはmacOS Catalinaをカーネル拡張(kext)に完全対応する最後のmacOSと位置づけ、それ以降はDriverKitを使ったDriver Extensionへの移行を推奨しています。Karabiner-Elementsは現在DriverKitベースの仮想キーボードドライバーを使用しています。 – Macでシステム機能拡張に関する警告が表示される場合 | Apple サポート
  7. macOS Sequoia 15以降、Driver Extensionの許可はシステム設定の「ログイン項目と機能拡張」から行います。以前のmacOSでは「プライバシーとセキュリティ」内に表示されていたため、アップデート後に設定箇所が見つからないケースが報告されています。 – Required macOS settings | Karabiner-Elements
  8. Karabiner-Elements 15.1.0は2024年9月ごろにリリースされました。この変更に伴い、修飾キーの扱い・ファンクションキーの動作・Caps Lockの挙動など複数の破壊的変更が同時に加わりました。詳細は公式のブレーキングチェンジページに記載されています。 – Breaking changes introduced by the version upgrade | Karabiner-Elements
  9. Apple Aluminum USB Keyboard(A1243)は、Vendor ID 0x05ac、Product ID 0x0220として識別されます。このモデルを使ったことがあるユーザーは、システム設定の「キーボード > 修飾キー」でA1243向けの設定が保存されている可能性があります。 – Breaking changes introduced by the version upgrade | Karabiner-Elements
  10. 公式のブレーキングチェンジドキュメントでも、15.1.0へのアップデート後は「System Settings > Keyboard > Keyboard Shortcuts > Modifier Keys」でApple Aluminum USB Keyboard(A1243)向けの修飾キー設定を見直すよう案内されています。 – Breaking changes introduced by the version upgrade | Karabiner-Elements
  11. HID規格はUSB Implementers Forum(USB-IF)が策定・管理しています。同じHIDプロトコルはUSBだけでなく、Bluetooth接続デバイスにも使われています。 – Human Interface Devices (HID) Specifications and Tools | USB-IF
  12. Vendor IDは製造者を識別する16ビットの識別番号で、USB-IFが管理します。macOSでは「システム情報」アプリのUSBセクションから、接続されているデバイスのVendor IDとProduct IDを確認できます。 – How to Find Vendor ID and Product ID for Your USB Device | Acroname
  13. Karabiner-Elements 15.9.0は2026年1月19日にリリースされました。v15.8.0で発生していたアップデート通知が表示されない不具合が修正されています。 – Release notes | Karabiner-Elements