KeyameleonとKeychangeは同じ問題を解決します。macOSの入力ソースはすべてのキーボードで共通なので、US配列のMacBookのキーボードからドイツ語配列の外付けキーボードに移るたびに、手動で配列を切り替える必要があります。どちらも、別のキーボードで入力を始めると自動で切り替えてくれる無料・オープンソースのメニューバーアプリです。違いは、対応するMac、最初に入力したキーの扱い、そして入力に対してどこまでのアクセスが必要かです。

ひと目で比較

KeyameleonKeychange
切り替えの基準入力しているキーボード入力しているキーボード
価格とライセンス無料、MIT無料、MIT
macOS26以降14以降
必要な権限入力監視入力監視(「Before key press」を使う場合はアクセシビリティも)
新しく使い始めたキーボードの最初のキー前の入力ソースで入力される前の入力ソースで入力される(「Before key press」がオンの場合を除く)
入力へのアクセス監視のみ:キー入力を遅らせたり、変更・挿入したりできないデフォルトでは監視のみ。「Before key press」ではすべてのキー入力に割り込む
セットアップガイド付きセットアップウインドウ、その後は設定ウインドウメニューバーのポップオーバーで、キーボードごとにドロップダウンから選択
インストールDMGまたはbrew install --cask mastro993/tap/keyameleonDMGまたはbrew install dennistimmermann/tap/keychange

共通点

  • キーボードごとに入力ソースを一度割り当てておけば、そのキーボードでキーを押したときに、どのアプリでもその入力ソースが選択されます。
  • キーボードはハードウェアの識別情報で認識されるため、抜き差ししても割り当ては保持されます。
  • ショートカットボタン付きのマウスなど、キーボードとして認識されるもののキーボードではないデバイスは、非表示にして切り替えに影響しないようにできます。
  • どちらもキーボードを区別するために入力監視の許可が必要で、入力内容を記録したり送信したりはしません。
  • どちらも必要に応じてログイン時に起動でき、Sparkleでアップデートします。Keyameleonの確認は1日1回までで、承認したアップデートだけをインストールします。KeychangeはGitHubの新しいリリースをインストールするよう提案します。

最初に入力するキー

どのキーボードが使われているかを監視するアプリは、macOSがキー入力を受け取ってからでないとそれを知ることができません。切り替えた時点で、そのキーはたいてい前面のアプリに向かっていて、古い配列で入力されています。どちらのアプリもここが出発点ですが、その対処法が異なります。

KeychangeにはBefore key pressモードがあります。すべてのアプリのすべてのキー入力(パスワードフィールドを除く)に割り込み、配列を切り替えてから新しい配列で文字を変換し直します。一部の入力方式では、キーを一瞬保留します。これにより最初の文字も正しく入力されます。このモードにはアクセシビリティの許可が必要で、Keychangeがキーボードとすべてのアプリの間に入ることになります。

Keyameleonはこの経路に入りません。AppleのCoreHIDフレームワークを監視のみのモードで使ってキーボードを観察するため、入力を遅らせたり、変更・挿入したりすることはできません。配列の変更もmacOSのテキスト入力システムを通じてのみ行います。その代償はFAQにあるとおりで、切り替えのきっかけとなったキーと、macOSが切り替えを終える前に入力したキーは、前の入力ソースのまま入力されることがあります。

単語の途中でキーボードを頻繁に持ち替えるなら、Keychangeのこのモードが決定的な違いになります。どのアプリにもキー入力を変更させたくないなら、Keyameleonはまさにその原則に基づいて作られています。

ほかの方法で入力ソースが変更されたとき

メニューバーから別の入力ソースを選んだり、別のアプリが入力ソースを変更したりすることがあります。Keychangeでは、その後の動作を選べます。自身をオフにする、入力ソースが再びキーボードと一致するまで一時停止する、キーボードを替えるまで選択をそのままにする、次のキー入力まで選択をそのままにする、のいずれかです。

Keyameleonの動作はひとつだけで、設定はありません。変更を記録してメニューに不一致を表示しますが、それに逆らうことはしません。割り当てのあるキーボードで次にキーを押すと、そのキーボードの入力ソースが再び選択されます。

Keyameleonだけの機能

  • ガイド付きセットアップ。ひとつのウインドウで入力監視の許可とキーボードごとの配列の割り当てを行い、すべての準備が整ったことを確認してから、アプリがメニューバーに移ります。
  • 切り替えの検証。macOSに入力ソースの切り替えを要求したあと、Keyameleonはその結果を読み取って確認します。切り替わっていなければ、メニューに警告と「Retry Now」が表示されます。
  • 勝手に代わりを選ばない。割り当てた入力ソースがmacOSから削除されても割り当てはそのまま残り、代わりの入力ソースは選ばれません。元に戻るまで、メニューにその旨が表示されます。
  • キーボードに好きな名前を付けられるほか、割り当て済みの各キーボードとその配列の国コードを一覧表示するメニューがあります。
  • メニューから⌘ Pで一時停止と再開ができます。

Keychangeだけの機能

  • macOS 14 Sonomaと15 Sequoiaで動作。KeyameleonにはmacOS 26が必要です。
  • Before key pressモード(前述)。
  • メニューバーのバッジで、使用中の入力ソースをひと目で確認できます。
  • ほかの方法で入力ソースが変更されたときの4つの対処方法。
  • Optionキーを押しながらクリックするとベンダーIDとプロダクトIDが表示され、似た名前のキーボードを区別できます。

どちらを使うべきか

  • MacでmacOS 14または15を使っている:Keychange。Keyameleonは動作しません。
  • 最初の文字から必ず正しく入力したい:Before key pressを有効にしたKeychange。ただし、アクセシビリティの許可を与え、すべてのキー入力への割り込みを許容できる場合に限ります。
  • 入力を監視するだけで、決して手を加えないアプリがほしい。ガイド付きセットアップや、問題があるときのわかりやすい警告も重視する:Keyameleon。

どちらも無料なので、両方試してもコストはかかりません。ただし、同じシステム設定を変更するため、同時に使うのはひとつだけにしてください。

この問題について初めて知った方は、外付けキーボードで別の配列を使う方法から読んでみてください。Keychangeはautokbiswから着想を得たとしています。コマンドラインの選択肢については、そちらの比較記事で解説しています。