Hier ist etwas, das scheiße ist:
Ich möchte Schritt 2 ersetzen durch „Computer merkt sich genau, wie ich es hatte und legt es einfach so zurück“.
(Ich persönlich brauche nur eine Lösung für Mac, aber das Sammeln von Lösungen für andere Systeme hier könnte für andere nützlich sein. Ich bin sicher, dass es ein häufiges Problem ist.)
Schauen Sie sich Stay by Cordless Dog an. Ich glaube, es macht genau das, was Sie suchen.
Slate ist eine sehr leistungsstarke kostenlose Mac-App, die genau das tut, was Sie wollen. Wenn Sie Ihren sekundären Monitor anschließen, erkennt er automatisch den neuen Monitor , und alle Ihre Fenster werden verschoben und in der Größe so angepasst, wie Sie es möchten. Sie können benutzerdefinierte Positionen und Größen für alle Ihre Anwendungen definieren, einschließlich Vollbild, Halbbild und rasterbasiert.
Eines der coolsten Dinge an Slate ist, dass Sie verschiedene Layouts basierend auf der Anzahl der angeschlossenen Monitore definieren können . Wenn Sie beispielsweise Ihren Laptop alleine verwenden, möchten Sie möglicherweise, dass alle Ihre Apps den gesamten Bildschirm ausfüllen. Aber wenn Sie einen größeren sekundären Monitor haben, möchten Sie vielleicht Ihren Bildschirm zwischen Ihrem Browser, E-Mail und Musik aufteilen. Schiefer tut dies problemlos.
Sie können auch Tastenkombinationen für bestimmte Layouts und Aktionen definieren, z. B. das Anstoßen und Ändern der Größe von Fenstern um einen bestimmten Prozentsatz.
Unten ist meine Konfigurationsdatei. Ich halte alle meine Apps auf allen meinen Monitoren im Vollbildmodus, aber Sie können es ändern, um sie auf die Hälfte oder eine andere Größe zu bringen:
# 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
Hier ist die Liste der Funktionen von Slates GitHub-Seite:
Hier ist ein großartiges Tutorial , wie Sie das Beste aus Slate herausholen können.
default
Direktive ausführen kann . Ich weiß nicht, ob Sie den „Take Snapshot“-Teil automatisieren können.Ich habe das mit einem kleinen AppleScript und dem kleinen Freeware-Utility Quicksilver gelöst.
Speichern Sie dieses kleine AppleScript an einem Ort, der sich auf Ihrem Computer nicht ändert:
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
Sie müssen anpassen, welche Anwendungen Sie auf Ihrem Monitor haben möchten, und die Fensterbegrenzungen so, wie Sie es möchten. Ich bin Programmierer und mit der obigen Konfiguration betreibe ich meinen zweiten Monitor.
Quicksilver installieren .
Ich habe mich dafür entschieden, es im Dock nicht sichtbar zu machen und es einfach als kleinen Taskleisten-Daemon auszuführen
Richten Sie einen Tastaturkurzbefehl in Quicksilver ein und ziehen Sie Ihr AppleScript aus Schritt 1 per Drag-and-Drop als auszuführende Aktion in das Fenster. Ich habe es gebunden CommandShiftA. Funktioniert super!
Stelle dies hier für die Nachwelt fest. Eine sehr kleine App, die genau das tut und nicht mehr: Memmon (macOS 10.10+).
Ich bin gerade http://cordlessdog.com/stay/ gefolgt , funktioniert großartig für mich, allerdings mit einer kleinen Verzögerung
Sobald Sie auf Ihrem Mac installiert bleiben, können Sie ihn starten und die Fenster nach Belieben speichern. Wenn Sie also Ihre Displays trennen und wieder anschließen, werden alle Fenster wiederhergestellt.
Möglicherweise müssen Sie stay als Startanwendung hinzufügen, da Sie es bei jedem Neustart Ihres Mac starten müssen.
Ich habe dies ohne externe Anwendung behoben.
Alles, was Sie tun müssen, ist sicherzustellen, dass Ihr Laptop "Desktop 1" und Ihr externer Monitor "Desktop 2" ist.
Sie können dies tun, indem Sie die weiße Menüleiste in Systemeinstellungen> Anzeigen> Anordnung auf den Laptopbildschirm verschieben
Bevor Sie den Monitor ausstecken, schließen Sie alles, was sich nicht vollständig auf dem Hauptmonitor befindet. Anwendungen speichern im Allgemeinen ihren Status (einschließlich der Fensterplatzierung) beim Schließen und lesen ihn beim Öffnen. Wenn also der zweite Monitor zu beiden Zeiten vorhanden ist, sollte es Ihnen gut gehen.
Sie können Anwendungen nutzen, die es zulassen, dass mehr als eine Instanz gleichzeitig geöffnet ist, aber den Status nur beim Schließen speichern. Schließen Sie die Multi-Monitor-Instanz (wodurch der Zustand gespeichert wird). Trennen Sie den zweiten Monitor. Wenn Sie eine zweite Instanz ausführen, sollte diese auf dem Hauptmonitor neu positioniert werden, oder Sie können eine andere Instanz starten. Schließen Sie diese Instanz nicht, bevor Sie den zweiten Monitor wieder anschließen und eine andere Instanz starten (die dann die Multi-Monitor-Konfiguration beim Start lesen würde). Dann können Sie die Instanz mit einem Monitor beenden (wobei dieser Zustand gespeichert wird) und dann die Instanz mit mehreren Monitoren (wobei der Zustand mit einem einzelnen Monitor überschrieben wird).
Eine komplexere Option könnte darin bestehen, herauszufinden, wo der Status gespeichert ist, ihn zu sichern und eine Batch-Datei / ein Skript zu schreiben, um ihn wiederherzustellen, bevor Sie die Anwendung öffnen, wodurch Sie einen Link erstellen könnten, um dies automatisch zu tun, wenn Sie die Anwendung starten .
Schließlich gibt es möglicherweise ein solches Dienstprogramm für Ihre Plattform, oder das Schreiben eines solchen ist möglicherweise nicht zu komplex. Für Windows gibt es ein Programm namens ShiftWindow , das Fenster entweder beim Start der Anwendung oder auf einem bestimmten Hotkey neu positionieren kann. Ich fürchte, ich kenne MacOS nicht gut genug, um sagen zu können, ob ein ähnliches Dienstprogramm existiert. Dies ist wahrscheinlich die ideale Lösung, nur dass das Betriebssystem so etwas direkt unterstützt.
Auf Reddit schlugen einige User Display Maid vor . Ich verwende es auf MB Air (M1), das mit dem Display Link-Dock mit 4K-Monitor und Full-HD-Monitor verbunden ist, der über TB verbunden ist, und bisher ist es großartig.
Ich habe auf macrumors eine Antwort gefunden , die für mich funktioniert, ohne dass eine andere Software erforderlich ist.
Preferences
-> General
-> Häkchen entfernenClose windows when quitting an app
Die Beschreibung dessen, was diese Einstellung macht, ist sinnvoll:
Wenn diese Option ausgewählt ist, werden geöffnete Dokumente und Fenster nicht wiederhergestellt, wenn Sie eine App erneut öffnen
Ich weiß nicht, warum das Trennen und Einstecken eines Displays als „Erneutes Öffnen einer App“ gilt, aber das hat bei mir funktioniert.
Zumindest unter Windows stellen sich viele Apps selbst wieder her, wenn Sie sie maximieren, bevor Sie den Monitor wechseln. Lassen Sie sie in Ruhe, während Sie sich im Meeting befinden, und stellen Sie sie nach dem erneuten Verbinden wieder her.
Es ist immer noch eine unvollständige Lösung (und Ärger), aber es ist das einzige, was ich tun kann, wenn ich eine Chance haben möchte, meine sorgfältig platzierten Fenster wiederzubeleben. ShiftWindow klingt aber interessant...
Und wenn Sie von zwei Monitoren auf einen heruntergehen, Alt + Leertaste + M, dann sind die Pfeiltasten ein Lebensretter (wieder Windows, sorry), wenn Sie Ihre Fenster "verlieren".
http://www.irradiatedsoftware.com/twoup/index.html
Ich habe das über Lifehacker gefunden und es funktioniert großartig für mich. Ich verwende die Pro-Version SizeUp im Gegensatz zum kostenlosen TwoUp und es ist perfekt.
Ich bin ein Windows-Benutzer und habe gesucht, wie ich die neue Windows 7-Funktion ausschalten kann, um alle Fenster vom nicht angeschlossenen externen Monitor wegzubewegen. Ich habe die Quittung (für ATI-Grafikkarten) gefunden, alle DMMEnableDDCPolling-Werte in der Registrierung auf 0 zu setzen. Sie deaktiviert die automatische Überprüfung, ob der Monitor ausgeschaltet ist. Wenn nun der Monitor ausgesteckt und wieder eingesteckt wird, bleiben alle Fenster in der gleichen Position.
Hier ist die Antwort, die mir geholfen hat: https://superuser.com/questions/120983/how-to-disable-monitor-auto-detection-in-windows-7 (Antwort von Alex)
Trennen und stecken Sie die Monitore in der gleichen Reihenfolge.
Abziehreihenfolge: Monitor1 -> Monitor2 Steckreihenfolge: Monitor2 -> Monitor1
dreves
Toni Arnold
Vasco
Ernst Robert