2番目のモニターを取り外して再接続するときは、ウィンドウのサイズと配置を覚えておいてください


99

以下がおかしいです:

  1. 外付けモニターをラップトップに差し込みます(私の場合はMac OS X Leopard)。
  2. IDEを1つの画面に、ブラウザを別の画面に配置するようにウィンドウを配置します。(など)サイズ変更、再配置、大騒ぎ、大騒ぎ、大騒ぎ。
  3. モニターを取り外して、会議などを実行します。
  4. 後藤1。

ステップ2を「コンピューターは私が持っていた方法を正確に記憶し、そのまま元に戻す」に置き換えたいと思います。

(個人的にはMac向けのソリューションのみが必要ですが、ここで他のシステム向けのソリューションを収集することは、他の人にとって有用かもしれません。それはよくある問題だと確信しています。)

回答:


56

見てい滞在コードレス犬によると。私はそれがあなたが探しているものとまったく同じだと信じています。


2
これを試してみました。X11ウィンドウでは機能しませんが、それ以外は宣伝どおりのようです。ポインターをありがとう!これは現在、Macのソリューションに最も近いものである可能性があります。
10

X11ウィンドウは「実際の」NSWindowインスタンスではないので(少なくとも前回チェックしたときはそうではありませんでした)、Stayがそれらとは何の関係もないことは大きな驚きではありません:)

1
これはよさそうですが、Lionのフルスクリーンアプリでは動作しません。1台のディスプレイを持っているときにSafariをフルスクリーンモードにし、2番目のディスプレイを接続した後、フルスクリーンを終了してSafariを2番目のディスプレイに移動したい。Stayはフルスクリーンアプリを移動しません。

1
それはぴったりのように見えました。しかし、3台の外部ディスプレイを使用すると、多くの場合、位置に問題があり、問題を50%に解決しました。だから私はまだ多くの手作業をしなければなりませんでした。削除しました。ああ、その30日間のトライアル!
エルンストエルンスト

15

Slateは非常に強力な無料の Macアプリで、まさにあなたが望むことをします。セカンダリモニターを接続すると、新しいモニターが自動的に検出され、すべてのウィンドウが好きなように移動およびサイズ変更されます。フルスクリーン、ハーフスクリーン、グリッドベースなど、すべてのアプリケーションのカスタムの位置とサイズを定義できます。

Slateの最も優れた点の1つは、接続したモニターの数に基づいて異なるレイアウトを定義できることです。たとえば、ラップトップを単独で使用している場合、すべてのアプリを画面全体に表示することができます。しかし、より大きなセカンダリモニターを使用している場合は、ブラウザー、メール、音楽の間で画面を分割することをお勧めします。スレートはこれを簡単に行います。

特定の割合でウィンドウをナッジおよびサイズ変更するなど、特定のレイアウトおよびアクションのキーボードショートカットを定義することもできます。

以下は私の設定ファイルです。私はすべてのモニターですべてのアプリを全画面表示にしていますが、半分または他のサイズに変更することができます:

# Monitor Aliases
alias mon-laptop    0    # variable for my laptop monitor
alias mon-hp        1    # my external HP monitor

# Window Position Regions
alias hp-full        move screenOriginX;screenOriginY screenSizeX;screenSizeY         ${mon-hp}
alias hp-left        move screenOriginX;screenOriginY screenSizeX/2;screenSizeY         ${mon-hp}
alias hp-right       move screenOriginX+screenSizeX/2;screenOriginY screenSizeX/2;screenSizeY         ${mon-hp}
alias laptop-full        move screenOriginX;screenOriginY screenSizeX;screenSizeY         ${mon-laptop}
alias laptop-left        move screenOriginX;screenOriginY screenSizeX/2;screenSizeY         ${mon-laptop}
alias laptop-right       move screenOriginX+screenSizeX/2;screenOriginY screenSizeX/2;screenSizeY         ${mon-laptop}
alias laptop-righttop    move screenOriginX+screenSizeX/2;screenOriginY screenSizeX/2;screenSizeY/2       ${mon-laptop}
alias laptop-rightbottom move screenOriginX+screenSizeX/2;screenOriginY+screenSizeY/2    screenSizeX/2;screenSizeY/2       ${mon-laptop}

# Window layouts for when I have 2 monitors
layout 2monitor 'Google Chrome':REPEAT ${hp-full}
layout 2monitor 'iCal':REPEAT ${hp-full}
layout 2monitor 'Coda':REPEAT ${hp-full}
layout 2monitor 'Mail':REPEAT ${laptop-full}
layout 2monitor 'Rdio':REPEAT ${laptop-full}
layout 2monitor 'Spotify':REPEAT ${laptop-full}
layout 2monitor 'Evernote':REPEAT ${laptop-full}

# Single monitor window layouts
layout 1monitor 'Google Chrome':REPEAT ${laptop-full}
layout 1monitor 'iCal':REPEAT ${laptop-full}
layout 1monitor 'Coda':REPEAT ${laptop-full}
layout 1monitor 'Mail':REPEAT ${laptop-full}
layout 1monitor 'Rdio':REPEAT ${laptop-full}
layout 1monitor 'Spotify':REPEAT ${laptop-full}
layout 1monitor 'Evernote':REPEAT ${laptop-full}

# Keyboard shortcuts for each layout
bind l:shift;ctrl layout 2monitor
bind g:shift;ctrl grid padding:5 0:2,1 1:2,2

# Auto-detect when a monitor is plugged in or out
default 2monitor count:2
default 1monitor count:1

SlateのGitHubページの機能のリストは次のとおりです。

  • 高度にカスタマイズ可能
  • キーストロークのバインド:
    • ウィンドウの移動および/またはサイズ変更
    • 指向的にフォーカスするウィンドウ
    • プリセットレイアウトをアクティブにする
    • ウィンドウの現在の状態のスナップショットを作成、削除、アクティブ化する
  • 構成が検出されたときにアクティブになるさまざまなモニター構成のデフォルトレイアウトを設定します。
  • ウィンドウヒント:ウィンドウフォーカスを変更する直感的な方法
  • [ベータ]より優れた、よりカスタマイズ可能なアプリケーションスイッチャー。

Slateを最大限に活用するための素晴らしいチュートリアルがここにあります。


外部モニターが最後に接続されたときからウィンドウがどのように配置されたかを覚えて、それらを復元することはできますか?アプリ「Stay」はほとんどこれを行いますが、ウィンドウ(特にChrome)の記憶に失敗し続けるので、私はまだもっと良いものを探しています。
14

@dreevesはい、それは私のために動作します。スレートのメニュー項目「スナップショットを撮る」と「スナップショットをアクティブにする」を使用して、手動で成功しました。コンピューターをスリープ状態にする前後にそれらをクリックすると、すべてのウィンドウ位置を保存および復元します。ドキュメントから Slateはdefaultディレクティブを使用して「スナップショットのアクティブ化」を自動的に実行できるようです。「スナップショットを撮る」部分を自動化できるかどうかはわかりません。
ロリーオケイン14

2
OPのユースケースでは、メニューで[スナップショットの保存]と[スナップショットの復元]をクリックするだけです。必要なウィンドウ設定が1つだけである限り、他の設定を変更することなく正常に機能するはずです。
Muhd

3
スレートはもうメンテナンスされていません。彼らは今Hammerspoonを使用することを提案しています。
確かに

8

これを小さなAppleScriptと小さなフリーウェアユーティリティQuicksilverで解決しました。

  1. この小さなAppleScriptを、コンピューターで変更されない場所に保存します。

    try
        tell application "Adium"
            activate
            tell window "contacts"
                set the bounds to {1281, 200, 1460, 850}
            end tell
            tell chat windows
                set the bounds to {1281, 800, 1800, 1200}
            end tell
        end tell
    end try
    
    try
        tell application "iTunes"
            activate
            set the bounds of the first window to {1750, 520, 2700, 1150}
        end tell
    end try
    
    try
        tell application "Terminal"
            activate
            set the bounds of the first window to {2450, 320, 3180, 950}
        end tell
    end try
    
    try
        tell application "Firefox"
            activate
            set the bounds of the first window to {1460, 20, 2800, 950}
        end tell
    end try
    
  2. モニター上で必要なアプリケーションと、ウィンドウの境界を好きなようにカスタマイズする必要があります。私はプログラマーであり、上記の構成は2番目のモニターの実行方法です。

  3. Quicksilverをインストールします。

    Dockに表示されないようにし、小さなタスクバーデーモンとして実行することにしました。

  4. Quicksilverでキーコマンドを設定し、実行するアクションとしてAppleScriptをステップ1からウィンドウにドラッグアンドドロップします。にバインドしCommandShiftAます。よく働く!


3
管理するアプリケーションの数が多い場合、特にスケーラブルではありません。管理も簡単ではありません!境界のハードコーディングは本当に面白くない。
ファトホフ

アプリケーションが表示されるデスクトップを設定できますか?
dangerousdave

3

モニターのプラグを抜く前に、完全にメインモニターにないものをすべて閉じます。通常、アプリケーションは閉じたときにその状態(ウィンドウの配置を含む)を保存し、開いたときにそれを読み取ります。

一度に複数のインスタンスを開くことができるアプリケーションを利用できますが、閉じるときにのみ状態を保存します。マルチモニターインスタンスを閉じます(状態が保存されます)。2番目のモニターを取り外します。2番目のインスタンスを実行している場合は、メインモニターに再配置するか、別のインスタンスを起動できます。2番目のモニターを再度接続して別のインスタンスを起動する前にこのインスタンスを閉じないでください(起動時にマルチモニター構成を読み取ります)。その後、単一モニターインスタンスを終了(その状態を保存)してから、マルチモニターインスタンス(単一モニター状態を上書き)を終了できます。

より複雑なオプションには、状態を保存する場所の特定、バックアップ、およびアプリケーションを開く前にそれを復元するバッチファイル/スクリプトの作成が含まれます。 。

最後に、プラットフォームにこのようなユーティリティがあるかもしれません。または、作成するのが複雑すぎないかもしれません。Windowsの場合、アプリケーションの起動時または特定のホットキーのいずれかでウィンドウの位置を変更できるShiftWindowというプログラムがあります。同様のユーティリティが存在するかどうかを言うほど十分にMacOSを知らないのではないかと思います。これはおそらく、OSがそのようなことを直接サポートすることに次ぐ理想的なソリューションです。


1
ありがとう!私が望んでいた答えではなく、良いリードです!
深夜09

3

私はちょうどhttp://cordlessdog.com/stay/をフォローしましたが、私にとってはうまくいきますが、少し遅れがあります

Macにインストールしたままにしたら、起動して、必要に応じてウィンドウを保存できます。そのため、ディスプレイを切断して接続し直すと、すべてのウィンドウが復元されます。

Macを再起動するたびに起動する必要があるため、スタートアップアプリケーションとしてstayを追加する必要があるかもしれません。


2

外部アプリケーションなしでこれを修正しました。

あなたがしなければならないことは、あなたのラップトップが「デスクトップ1」であり、あなたの外部モニターが「デスクトップ2」であることを確認することです

これを行うには、[システム設定]> [ディスプレイ]> [配置]の白いメニューバーをラップトップ画面に移動します。


1

少なくともWindowsでは、モニターを切り替える前にアプリを最大化すると、多くのアプリが自動的に復元されます。会議中はそのままにして、再接続後に復元します。

それはまだ不完全な修正(および手間)ですが、注意深く配置されたウィンドウを復活させるチャンスが欲しい場合に私が知っている唯一のことです。しかし、ShiftWindowは興味深そうに聞こえます...

また、2台のモニターから1台のモニターに移動する場合、Alt + Spacebar + Mを押すと、ウィンドウを「失くした」場合、矢印キーが命の恩人になります(Windowsを再度ごめんなさい)。


1

http://www.irradiatedsoftware.com/twoup/index.html

Lifehackerを介してこれを見つけました。無料のTwoUpではなく、ProバージョンのSizeUpを使用していますが、完璧です。


これは私が提起した問題を解決すると言っていますか?あなたがリンクしたページはそれについて何も言及していないようです。

1
いいえ、これは問題をまったく解決しません。SizeUpを使用すると、ウィンドウを目的の場所にすばやく移動できますが、各ウィンドウを手動で切り替えて、それぞれの移動先をSizeUpに指示する必要があります。
ロリーオケイン14

1

私はWindowsユーザーであり、新しいWindows 7機能をオフにして、すべてのウィンドウを取り外した外部モニターから遠ざける方法を探していました。レジストリのすべてのDMMEnableDDCPolling値を0に設定するためのレシート(ATIビデオカード用)が見つかりました。モニターのスイッチがオフになっている場合、自動チェックが無効になります。これで、モニターのプラグを抜き、再び差し込むと、すべてのウィンドウが同じ位置に保持されます。

これが私を助けた答えです:https : //superuser.com/questions/120983/how-to-disable-monitor-auto-detection-in-windows-7(Alexによる答え)


1
これはMacとは関係ありませんか?

5
いいえ。ただし、質問は「windows」としてもタグ付けされました(ただし、OPはプログラムウィンドウを参照している可能性があります;))。とにかく、Windowsには、このタスクに便利なユーティリティがいくつかあります。私は個人的にバスタのZMoverを使用していますが、うまく機能しています。別の代替手段は、DeskSoftのWindowManagerです。しかし、これらはもちろんOSXユーザーには役立ちません。
ヴィル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.