Skip to content

Glossary

同じキーが押された。でも反応するのは1つのアプリだけ

2つ以上のアプリが同じ短縮キを使おうとするとホットキー競合が発生します。1つだけが反応します。macOS がどう判定するか、そして修正方法。

· 約5分

ホットキー競合は、2つ以上のアプリケーションが同じキーボード短縮キを聞いている状態です。両方のアプリが同じ組み合わせを望んでいる。例えば、Option-Spaceだとします。キーを押すと、macOSはそのキーストロークをフォーカスされているアプリに送ります。そのアプリが最初にキーを受け取り、それを認識すれば実行され、もう一方は見ることさえできません。

どのアプリが勝つかをシステムが決める

順序は以下です:

  1. フォアグラウンドアプリ。 macOSはすべてのキーストロークを最初にアクティブなアプリケーションに送ります。そのアプリがホットキーを登録していれば、実行されます。
  2. グローバルリスナー。 あるアプリはフォーカスされていなくても、ホットキーを聞くように登録できます。フォアグラウンドアプリがそのキーを使わなければ、バックグラウンドリスナーがそれを奪える可能性があります。
  3. システム。 どのアプリもキーを主張しなければ、macOSがそのキーに対してシステムレベルの動作を持つかもしれません(スクリーンショット、Spotlight など)。

これは競合が非対称だということを意味します。両方のアプリがバックグラウンドで聞いていれば、最初に登録したアプリが通常勝ちます。一方がアクティブのときだけ聞き、もう一方がグローバルで聞いていれば、グローバルリスナーがフォアグラウンドアプリからキーを奪える。

実際にどこから競合は生じるか

ホットキー競合は一般的です:

  • よく使われるショートカットが人気。 Option-SpaceやCommand-Shift-Dなどは、覚えやすいという理由で複数のアプリで再利用されています。特にApple 音声入力やその他の音声ツールでよく起きます。
  • ショートカット情報が散在している。 アプリをインストールするとき、ほとんどはそのホットキーをインストール後に発見します。既に別のものに割り当てているかもしれません。
  • アプリが警告しない。 macOSには、新しいアプリに「そのホットキーは既に使われている」と伝えるシステム全体レジストリがありません。ほとんどのアプリは設定に書かれたものを登録するだけです。

競合を直す方法

ホットキーが反応しなくなったら:

  1. どのアプリがそのキーを使っているか特定する。 最近追加したアプリ、または反応しなくなったアプリの設定を確認してください。
  2. 一方を変更する。 一方のアプリで別のホットキーを割り当てる、または使っていなければ無効化する。
  3. テストする。 両方のアプリでキーを押して、残したい方がまだ動作するか確認してください。

新しいアプリのホットキーを設定するときは、Command-Sや Option-Space のような有名な組み合わせを避けるか、先に他のアプリの設定を確認してください。

よくある質問

2つのアプリが同じホットキーを使いたいとき何が起こる?
フォーカスがあるアプリが最初にキーストロークを受け取ります。そのアプリがホットキーを認識すれば実行され、もう一方のアプリはそのキー入力を見ません。フォアグラウンドアプリがそのキーを使わなければ、バックグラウンドで聞いているアプリが受け取ります。
2つのアプリで同じホットキーを使えることもある?
あります。アプリがフォーカスされているときだけホットキーを認識し、他方も同様なら競合しません。でも、どちらか一方がグローバルに聞いていると、フォアグラウンドアプリからキーを奪える場合があります。アプリの設計による。
ホットキー競合があるかどうやって知る?
最初の兆候は、別のアプリをインストールした後に、あるアプリのホットキーが反応しなくなることです。両方のアプリの設定を確認して、どの短縮キを両方が使っているか見つけ、一方を別のキーに変更してください。