私は会議室のプロジェクターや解像度の異なる大画面に接続するのに慣れているので、一日中部屋から部屋へと移動するにつれて、窓も絶えずリサイズする必要があります。だからあなたの痛みを感じます。:-)
混乱を避けるために、この回答にいくつかの用語を定義します。
- プライマリディスプレイは、システム環境設定の配置タブでメニューバーを有するものです。
- メインディスプレイは、それがプライマリディスプレイであるかどうか、あなたは上のものをしたいものです。
- セカンダリディスプレイには、システム環境設定の配置タブでメニューバーのないものです。
基本的に、問題はメインディスプレイとプライマリディスプレイの間に重要な違いが見えることです。Mac OS Xはそうではなく、セカンダリディスプレイをメインディスプレイとして扱うことでこの区別を維持しようとすると、あなたと戦うことになります。
特に別の方法を試みない限り、アプリは主ディスプレイが何であっても常に開きます。これは、定義上、プライマリディスプレイの特徴の1つです。(Quartz APIの非常に低レベルの部分、特にCGConfigureDisplayOrigin呼び出しであるため、アプリ自体で設定できない場合、この動作は構成できません。)
接続時にメインディスプレイをプライマリディスプレイとして維持しないように、あなたにとって面倒なこと(「コメントに入れて他のことを混乱させる」こと)について質問することをお勧めします。 ; この動作はそうではありません。
ただし、役に立つかもしれないいくつかのトリックがあります:
ディスプレイをミラーリングしてからミラーリング解除すると、すべてのウィンドウが大きすぎて小さい画面に収まらないため、すべてのウィンドウがプライマリディスプレイに収まるようにサイズが変更されます。セカンダリディスプレイに表示したいので、これは完璧なソリューションではありませんが、次のトリックと組み合わせると、特にキーボードショートカット⌘-F1を知っている場合に便利な回避策になります。それを押し、システムをミラーリングに切り替え、もう一度押します。すべてのウィンドウのサイズが最小のディスプレイに変更され、プライマリディスプレイに表示されます。
この問題を回避するためのもう1つの非常に便利なツールはBetterTouchToolです。これにより、「次のモニターの中央ウィンドウ」および「次のモニターにウィンドウを最大化」ジェスチャーを設定できます。これらをそれぞれ4本指と5本指のクリックに割り当て、トラックパッドをマッシュするだけで、あるモニターから別のモニターにウィンドウをすばやく開くことができます。(大きなディスプレイに接続しているときにトラックパッドを使用しない場合、BTTは他のポインティングデバイスでもジェスチャーを実行できます。)
これらの2つのトリックを組み合わせることで、絶えず変化する解像度での作業は完璧ではなく、少なくとも許容できるものになりました。すべてのウィンドウをセカンダリディスプレイに表示する場合(たとえば、トレーニングセッションを行い、学生にメニューバーを表示したいが、トレーニングに関連しないすべてのウィンドウを他のディスプレイに表示したい場合) 、ミラー/ミラー解除のトリックを行い、ウィンドウがすべてポップされるまで、トラックパッドを4本指でスマックします。
最後に、いじるのが好きなら、すべてのウィンドウを別の方法でプライマリに移動するこのApplescriptをご覧ください。副作用としてウィンドウをプライマリに移動するミラーリング方法とは異なり、これは明示的にそれを行うため、ウィンドウを好みのメイン、セカンダリ、ディスプレイに移動するように変更できます。しかし、それは簡単ではありません。これは、すべてがこの使用法に対してあなたと戦っている理由のアイデアをあなたに与えるかもしれません。このApplescriptの重要な行は次のとおりです。
set position of window x to {0, 22}
メニューバーは22のディスプレイ座標(Retinaディスプレイの前は「ピクセル」であったもの)であり、画面とウィンドウの原点は左上にあるため、この行はウィンドウxをメニューバーの右下に移動し、左にフラッシュします。代わりにすべてのウィンドウをセカンダリディスプレイの左上に移動するようにこのスクリプトを調整するには、その座標を把握し、それをx値として使用する必要があります。スクリーンショットに表示される配置では、メニューバーの左側にいるため、そこの「0」は負の数値に置き換えられます。特に配置に関係なくスクリプトを動作させたい場合は、うまくいくのに多少の手間がかかります。
これはすべて厄介です、私は知っています。メインディスプレイとプライマリディスプレイを異なるものにしたい場合は、クラッジを受け入れる必要があります。そのため、この特定の戦いと戦うのではなく、他のディスプレイをプライマリにすることを妨げているものに取り組むことを強くお勧めします。