ホットキー競合は、2つ以上のアプリケーションが同じキーボード短縮キを聞いている状態です。両方のアプリが同じ組み合わせを望んでいる。例えば、Option-Spaceだとします。キーを押すと、macOSはそのキーストロークをフォーカスされているアプリに送ります。そのアプリが最初にキーを受け取り、それを認識すれば実行され、もう一方は見ることさえできません。
どのアプリが勝つかをシステムが決める
順序は以下です:
- フォアグラウンドアプリ。 macOSはすべてのキーストロークを最初にアクティブなアプリケーションに送ります。そのアプリがホットキーを登録していれば、実行されます。
- グローバルリスナー。 あるアプリはフォーカスされていなくても、ホットキーを聞くように登録できます。フォアグラウンドアプリがそのキーを使わなければ、バックグラウンドリスナーがそれを奪える可能性があります。
- システム。 どのアプリもキーを主張しなければ、macOSがそのキーに対してシステムレベルの動作を持つかもしれません(スクリーンショット、Spotlight など)。
これは競合が非対称だということを意味します。両方のアプリがバックグラウンドで聞いていれば、最初に登録したアプリが通常勝ちます。一方がアクティブのときだけ聞き、もう一方がグローバルで聞いていれば、グローバルリスナーがフォアグラウンドアプリからキーを奪える。
実際にどこから競合は生じるか
ホットキー競合は一般的です:
- よく使われるショートカットが人気。 Option-SpaceやCommand-Shift-Dなどは、覚えやすいという理由で複数のアプリで再利用されています。特にApple 音声入力やその他の音声ツールでよく起きます。
- ショートカット情報が散在している。 アプリをインストールするとき、ほとんどはそのホットキーをインストール後に発見します。既に別のものに割り当てているかもしれません。
- アプリが警告しない。 macOSには、新しいアプリに「そのホットキーは既に使われている」と伝えるシステム全体レジストリがありません。ほとんどのアプリは設定に書かれたものを登録するだけです。
競合を直す方法
ホットキーが反応しなくなったら:
- どのアプリがそのキーを使っているか特定する。 最近追加したアプリ、または反応しなくなったアプリの設定を確認してください。
- 一方を変更する。 一方のアプリで別のホットキーを割り当てる、または使っていなければ無効化する。
- テストする。 両方のアプリでキーを押して、残したい方がまだ動作するか確認してください。
新しいアプリのホットキーを設定するときは、Command-Sや Option-Space のような有名な組み合わせを避けるか、先に他のアプリの設定を確認してください。