So rufen Sie Fenster ab, die sich außerhalb des Bildschirms bewegt haben

Ich habe dieses Problem manchmal mit meinem Dual-Screen-Setup, besonders wenn ich mit vielen Dingen herumjongle.

Gelegentlich scheine ich in der Lage zu sein, ein Fenster vollständig aus dem Bildschirm zu verschieben (ich bin mir nicht ganz sicher, wie) und ich kann es nicht zurückbekommen. Wenn ich im Menü der Anwendung „Alles ausblenden“ mache (normalerweise ist es Mail.app, also bleiben wir für das Beispiel bei diesem), verschwindet alles und Mail scheint zu glauben, dass es ein „Posteingang“-Fenster im Windows-Menü hat, aber es ist nichts zu sehen. Das Schließen und Neustarten der App scheint nicht zu helfen (da sich die App hilfreich daran erinnert, wo mein Fenster zuvor war) und alles, was ich am Ende tue, ist, den Mac herunterzufahren, den zweiten Monitor zu trennen und neu zu starten, die Anwendung erneut zu öffnen und das scheint den Mac davon zu überzeugen, die Position des Hauptfensters zu überdenken, und alles ist gut. Ich kann dann den zweiten Monitor neu starten usw.

Gibt es einen besseren Weg? Gibt es eine Möglichkeit, Fenster wieder auf einen bestimmten Monitor zu ordnen, oder ein Dienstprogramm zum Verschieben von "offenen" / laufenden Fenstern? Mache ich eigentlich etwas falsch ? :-)

Ich verwende übrigens keine Leerzeichen - also bin ich mir ziemlich sicher, dass dies kein seltsames Problem mit Leerzeichen ist. :-)

Antworten (23)

Chealion hat dies auf SuperUser beantwortet .

Ich werde seine Antwort hier nicht kopieren und einfügen, da er die Anerkennung erhalten hat, nicht ich.

Aber im Grunde könnten Sie Folgendes tun (zitiert aus Chealions Antwort):

Eine zweite Methode, die Fenster so anzuordnen, dass Sie sie sehen können (falls sie aus irgendeinem Grund außerhalb des Bildschirms bleiben), besteht darin, zu der Anwendung zu wechseln, der das betreffende Fenster gehört, die Wahltaste gedrückt zu halten und „Vorne anordnen“ auszuwählen das Menü Fenster. Es ordnet dann alle Fenster dieser Anwendung in einer Kaskade von oben links auf dem Bildschirm an.

Oh, genial - danke! Ich habe seine Antwort dort positiv bewertet und Ihnen hier einige Anerkennung dafür gegeben, dass Sie mich an die richtige Stelle verwiesen haben. Da sind einige gute Vorschläge dabei, und ich kann es kaum erwarten, dass das Problem jetzt wieder auftritt. :-)
Diese Lösung funktioniert nicht in Yosemite, Sie können nur von der Anzeige aus auf das Fenstermenü zugreifen, auf der sich das Fenster in Yosemite befindet.
Die Menüoption wird für XQuartz nicht angezeigt
Apple scheint diese Funktion ab MacOS 10.13.5 entfernt zu haben. Es ist fast so, als ob die Möglichkeit, Fenster zu erhalten, die sich außerhalb des Bildschirms bewegt haben, als Fehler angesehen wird, anstatt dass sie außerhalb des Bildschirms verschoben werden können.
Kein solcher Menüpunkt in macOS Catalina
Ich verwende macOS Catalina. Option + Klick auf das App-Symbol hat bei mir funktioniert! Der Menüpunkt kann in neueren Versionen von macOS ausgeblendet sein, aber ich denke, dass die Kombination aus Taste + Klick dasselbe bewirkt.

Zur Vollständigkeit:

Aus meiner Antwort ursprünglich auf Server Fault Question 7237 :

Wenn ein Monitor nicht angeschlossen ist (einschließlich des Adapters, falls zutreffend - wenn der Adapter verlassen wird, denkt OS X, dass der Monitor noch angeschlossen ist), sollte sich das gesamte Windows auf Ihren Hauptbildschirm bewegen. Gelegentlich behalten einige Fenster (z. B. Firefox) ihre Position ganz rechts auf dem Bildschirm bei, sodass Sie gerade genug Platz haben, um die Titelleiste zu greifen und sie an die gewünschte Stelle zu verschieben.

Eine Methode besteht darin, vor dem Trennen des externen Monitors (oder vor dem Trennen des Dongles) das Anzeigeeinstellungsfenster in den Systemeinstellungen zu öffnen und auf die Schaltfläche „Gather Windows“ zu klicken. Dies soll jedes Fenster auf den Hauptbildschirm bringen und die Option wird nicht angezeigt, wenn Sie keinen zweiten Monitor angeschlossen haben.

Eine zweite Methode, die Fenster so anzuordnen, dass Sie sie sehen können (falls sie aus irgendeinem Grund außerhalb des Bildschirms bleiben), besteht darin, zu der Anwendung zu wechseln, der das betreffende Fenster gehört, die Wahltaste gedrückt zu halten und „Vorne anordnen“ auszuwählen das Menü Fenster. Es ordnet dann alle Fenster dieser Anwendung in einer Kaskade von oben links auf dem Bildschirm an.

Schließlich sind mehrere AppleScripts verfügbar (z. B. dieses bei Snipplr ), die auch jedes Fenster außerhalb des Bildschirms erfassen und für Sie auf den Bildschirm verschieben.

Es gibt auch eine raffinierte Shareware-App namens Stay , die Ihnen hilft, vieles davon für Sie zu automatisieren, während es auch MarcoPolo gibt, das viel mehr kann, als nur zu bemerken, wenn ein Monitor nicht angeschlossen ist, und Ihnen ermöglicht, Skripte auszuführen (falls Sie möchten). mehr tun, als nur die Fenster neu anzuordnen).

Es tut mir leid, aber ich habe keine Ahnung, wovon Sie reden. change to the application that owns the window in question, hold the Option key down and choose "Arrange in Front" from the Window menuDas sehe ich nirgendwo

Ich dachte, ich sollte darauf eine Antwort geben, die Lösungen speziell für XQuartz beschreibt. Viele der Lösungen hier funktionieren nicht für XQuartz. Aus diesem Ticket: https://xquartz.macosforge.org/trac/ticket/796 habe ich zwei Lösungen gefunden, die funktionieren, und ich denke, es wäre von Vorteil, sie hier anzugeben.

  1. Wenn Sie Ihren Monitor einfach aus-/einstecken können, dann trennen Sie Ihren Monitor, damit Ihr Fenster an einer Stelle erscheint, auf die Sie zugreifen können. Klicken Sie dann mit der Maus auf das Fenster und halten Sie die Maustaste gedrückt, als wollten Sie es ziehen. Schließen Sie Ihren Monitor an, ohne die Maus oder das Fenster loszulassen. Das XQuartz-Fenster sollte dort bleiben, wo sich Ihre Maus befindet.

  2. Dieses ShiftIt-Paket funktioniert sehr gut, um Fenster zu erhalten, die aus dem Bildschirm verschwunden sind: https://github.com/fikovnik/ShiftIt/downloads Es mag andere ähnliche Pakete geben, aber dieses ist sauber und effektiv.

Hoffe das hilft jemandem!

Shiftlt funktioniert fast mit XQuartz. Es zentriert tatsächlich das Hauptfenster von (zB) Inkscape neu, aber nicht das sekundäre Fenster (Eigenschaftsdialog). Ein nettes Werkzeug, um es zu wissen. +1

Ich habe zwei Bildschirme und das Laden von Inkscape bringt es normalerweise an einen unzugänglichen Ort. Ich kann es sehen, indem ich "alle Fenster anzeigen" verwende, aber wenn ich es von dort auswähle, geht es und verschwindet wieder. Die Lösung, die ich gefunden habe, kam von diesem Mailinglisten-Kommentar .

Wenn ich den zweiten Bildschirm ausstecke, kann ich Inkscape sehen. Aber selbst nachdem ich es ein wenig bewegt habe, wenn ich den anderen Bildschirm wieder einstecke, verschwindet es wieder von der Kante. Die Lösung ist:

  1. Trennen Sie den zweiten Bildschirm
  2. Mit der Maus die Titelleiste des Fensters erfassen (klicken und halten)
  3. Schließen Sie den Monitor wieder an, während Sie die Titelleiste festhalten
Ich möchte hinzufügen, dass ich viele Blicke von anderen Leuten im Büro bekomme, während ich diese Aufgabe ausführe.

Ich habe eine wirklich einfache Lösung dafür gefunden.

Bei Powerpoint ist mir das passiert. Ich ging zum Powerpoint-Menü oben auf dem Bildschirm. Klicken Sie auf „Fenster“ und dann auf „Fenster vergrößern“. Erledigt

Dies ist die einzige Antwort, die für 10.11.5 (Codename El Capitan) funktioniert hat.
Alternativ hat Window > Zoom nur für mich funktioniert (Zoom in Window war keine Option).
Fenster > Zoom funktioniert in Mojave

Etwas, das ich versucht habe und das für mich funktioniert hat, ist, die Auflösung auf eine niedrigere umzuschalten und sie dann wieder hochzufahren. Und es stellt die Anwendung auf magische Weise in den Mittelpunkt. Prost.

Ich habe diese Anwendung gefunden: WindowWrangler

Es ermöglicht die Verwendung von Tastaturkürzeln zum Verschieben des Fensters.

Leider funktioniert es nicht für das einzige Fenster, das ich brauche: Inkscape in einer XQuartz-Umgebung.

Haben Sie eine Lösung für xquartz gefunden?
Die Lösung, die ich gefunden habe, war, einen externen Monitor anzuschließen: In diesem Fall änderte sich die Position des Fensters so, dass ich es verschieben konnte. Ich verschiebe es so, dass nach dem Trennen des Bildschirms die obere Fensterleiste "zugänglich" ist.
@gebirgsbärbel Siehe die Antwort, die ich gerade unten gepostet habe. Ich denke, Sie finden es vielleicht nützlich.
@gebirgsbärbel Siehe die [neue Antwort] ( apple.stackexchange.com/a/238975/31154 ), die ich unten mit xdotooldem Dienstprogramm gepostet habe, das endlich alle meine Probleme gelöst hat

Für ein bestimmtes X11/XQuartz-Problem habe ich hier eine Lösung gefunden.

Voraussetzung

Zuerst benötigen Sie xdotool . Man kann es mit installierenbrew install xdotool

Die Grundlagen

Sie können ein Fenster mit dem folgenden Skript nach links verschieben:

xdotool getactivewindow windowmove --relative -- -100 -44

-44 ist ein Wert, von dem ich glaube, dass er die Summe der Höhe der Titelleiste und der Höhe der Menüleiste ist. Wenn hier nichts eingestellt ist, wird das Fenster heruntergefahren, anstatt die y-Position beizubehalten.

Für den richtigen Zug:

xdotool getactivewindow windowmove --relative -- 100 -44

Nach oben :

xdotool getactivewindow windowmove --relative -- x -100

Um nach unten zu gehen:

xdotool getactivewindow windowmove --relative -- x 100

Jetzt können Sie also das aktuell ausgewählte Fenster verschieben (auf das Sie mit Expose zugreifen könnten, indem Sie darauf klicken, wenn es sich außerhalb des Bildschirms befindet).

Ansicht freigeben

Sie können dann das Terminal öffnen und die Befehle wiederholen, bis das Fenster angezeigt wird.

Greifen Sie über eine Verknüpfung darauf zu

Um Ihr Fenster mit einer Tastenkombination zu bewegen, können Sie die hier gegebene Erklärung verwenden

Ich habe diese Verknüpfung tatsächlich mit BetterTouchTool hinzugefügt.

  1. BetterTouchPreferences > Tastatur

  2. Neue Verknüpfung hinzufügen

  3. Wählen Sie Textfeld Tastaturkürzel und drücken Sie (z. B.) shift+ ^+ cmd+

  4. Wählen Sie Vordefinierte Aktion auslösen : Steuern anderer Anwendungen > Terminalbefehl ausführen

  5. Geben Sie den Befehl für (z. B.) Rechtsbewegung mit dem vollständigen Pfad zu xdotool ein (Sie können ihn mit which xdotoolBefehl abrufen) .

    /usr/local/bin/xdotool getactivewindow windowmove --relative -- 100 -44

  6. Klicken Sie auf die Schaltfläche Speichern.

Wiederholen Sie dasselbe für andere Richtungen und genießen Sie es!

fink hat kein xdotool

Der Vollständigkeit halber bin ich auch auf Folgendes gestoßen: Stay App für Mac , obwohl ich es noch nicht ausprobiert oder gekauft habe.

Von ihrer Website:

Stay kann eine Reihe von Fenstern für jede Kombination von Displays speichern, die Sie mit Ihrem Computer verwenden. Wenn Sie beispielsweise einen Laptop haben, der manchmal an einen externen Monitor angeschlossen ist, können Sie zwei Sätze von Fenstern in Stay speichern; einmal mit angeschlossenem externen Monitor und einmal ohne. Wenn Sie dies getan haben, können Sie sicherstellen, dass Ihre Fenster immer dort sind, wo Sie sie haben möchten, indem Sie Stay Restore Windows immer dann wiederherstellen, wenn Sie den externen Monitor anschließen oder trennen. Stay kann sogar so konfiguriert werden, dass Fenster automatisch wiederhergestellt werden, wenn Displays verbunden und getrennt werden.

Ich habe eine Lösung, die für mich funktioniert hat, und ich habe Foren durchforstet und alles versucht, was mir möglich war.

Am Ende fand ich einen Weg. Installieren Sie eine App namens BetterTouchTool. Auf diese Weise können Sie eine Verknüpfung erstellen, um verschiedene praktische Dinge mit Ihrem Bildschirm usw. zu tun. Richten Sie dann eine App-spezifische Verknüpfung ein (viel einfacher als es klingt) und machen Sie es einfach. Ich habe es so eingestellt, dass ein "Zwei-Finger-Wischen nach oben" zu einer Aktion "Fenster maximieren" führte. Dadurch klebte die fehlende Anwendung auf meinem Laptop-Bildschirm und weg von dem Phantom-Monitorbildschirm, auf dem sie geklebt worden war.

Problem gelöst.

Hier ist ein Bild davon, wie BetterTouchTool aussah, als ich die Verknüpfung eingerichtet hatte:

BetterTouchTool-Verknüpfung

Ich behebe das Problem auch mit BetterTouchTool.

Ich hatte gerade das gleiche Problem in Mavericks, ich habe es geschafft, das Problem zu lösen, indem ich diesen Schritten folgte:

  1. Führen Sie den Mauszeiger zu einem Rand des Fensters, der sich außerhalb des Bildschirms bewegt hat, beispielsweise zum rechten Rand.
  2. Wenn Sie das Größenänderungssymbol sehen (in meinem Fall das horizontale Größenänderungssymbol), klicken Sie und halten Sie es gedrückt.
  3. Ziehen Sie das Fenster, während Sie den Klick gedrückt halten. Voila!
Dies funktioniert nur, wenn das Fenster an der Kante des anderen Fensters anliegt

Ein Freund von mir hat ein kostenloses Tool geschrieben, um die Fenster zurückzubringen, wenn Sie es ausprobieren möchten, gehen Sie hier: http://bring-em-back.com

Es scheint, dass mir das am häufigsten passiert, wenn die sekundäre Anzeige "oben" ist (in Systemeinstellungen -> Anzeige -> Anordnung). Wenn das Problem auftritt, wenn ich das externe Display "nach rechts" bewege, erscheinen die X11-Fenster wieder.

In El Capitan haben die einfachen Antworten hier bei mir nicht funktioniert oder waren nicht als Optionen verfügbar. Was funktioniert hat, war, mit der rechten Maustaste auf die App im Dock (in meinem Fall Chrome) zu klicken und Optionen > Desktop auf Anzeige 1 zuweisen auszuwählen. Dadurch wurden alle Fenster auf meinen aktuellen Desktop verschoben.

In Yosemite, wenn es für mich funktioniert hat

  1. Systemeinstellungen öffnen
  2. Öffnen Sie Anzeige < Auflösung
  3. Wählen Sie 'Skaliert'
  4. Ändern Sie die Einstellung vorübergehend auf etwas anderes

Für mich war das genug, um die Anwendung wieder auf den Bildschirm zu zwingen.

Dieser einfache Trick hat Abhilfe geschaffen. Danke schön!

Etwas seltsam ist allerdings, dass ein Fenster (in meinem Fall Terminal) in der Anordnung verloren gegangen ist. Ich habe Zoom versucht, alles nach vorne bringen, aber nichts schien zu funktionieren.

Schließlich hat das Fenster → Alle Fenster zusammenführen den Trick gemacht.

Sie können dafür im AppleScript-Editor eine einfache App erstellen. Geben Sie den folgenden Text ein und speichern Sie ihn als App. Wenn Sie es in Ihren Anwendungsordner legen, ist es einfach, über SpotLight darauf zuzugreifen. Ich habe meine Sammelfenster genannt.

property processesToIgnore : {}
tell application "Finder"
    set _b to bounds of window of desktop
    set screen_width to item 3 of _b
    set screen_height to item 4 of _b
end tell
tell application "System Events"
    set allProcesses to application processes
    set _results to ""
    repeat with i from 1 to count allProcesses
        set doIt to 1
        repeat with z from 1 to count processesToIgnore
            if process i = process (item z of processesToIgnore) then
                set doIt to 0
            end if
        end repeat
        if doIt = 1 then
            tell process i
                repeat with x from 1 to (count windows)
                    set winPos to position of window x
                    set _x to item 1 of winPos
                    set _y to item 2 of winPos
                    if (_x < 0 or _y < 0 or _x > screen_width or _y > screen_height) then
                        set position of window x to {0, 22}
                    end if
                end repeat
            end tell
        end if
    end repeat
end tell
Der Vollständigkeit halber müssen Sie erklären, wie Sie "Skript-Editor ist kein unterstützender Zugriff erlaubt" (Yosemite) umgehen.

Eine andere Lösung für XQuartz:

brew install wmctrl
wmctrl -i -r $(wmctrl -G -l | grep -i inkscape | cut -d' ' -f1 ) -e 0,0,0,100,100

Ersetzen Sie 'inkscape' durch was auch immer Sie wollen.

Hier ist eine einfache Antwort, die 15 Sekunden dauert und eine dauerhafte Lösung darstellt.

https://groups.google.com/forum/#!topic/eggbotuser/48RbZ2Pey5A

Dieses Problem tritt auf, wenn Sie mehrere Displays haben. Das Dokument wird geöffnet, es liegt ganz links, außerhalb des Bildschirms aller Anzeigen. Sie können dies nicht mit Applescript beheben: XQuartz implementiert nicht die standardmäßigen Skriptfähigkeitsverben, um die Position von Fenstern zu erhalten und festzulegen. Es implementiert auch nicht die Standardäquivalente des X11-Fenstermanagers.

Die Ursache des Problems ist ein Konflikt zwischen einer Voreinstellung in Inkscape und einer Voreinstellung in Mavericks.

Die Standardeinstellung für Mavericks in Systemeinstellungen > Mission Control ist [x] Displays have separate Spaces

Die Standardeinstellung für Inkscape in der Menüleiste Datei > Inkscape-Einstellungen > Fenster ist (•) Fenstergeometrie für jedes Dokument speichern und wiederherstellen.

Wenn Sie die OS X-Einstellung ändern (erfordert Abmelden und erneutes Anmelden) oder Sie ändern die Inkscape-Einstellung auf (•) Fenstergeometrie nicht speichern (was Sie nicht tun können, es sei denn, Sie können Inkscape dazu bringen, Ihnen eine Fenster) verhält sich Inkscape wie erwartet.

Wenn Sie also das neue Verhalten von Mavericks mit mehreren Displays auf Ihrem Mac wünschen, kehren Sie vorübergehend zum alten Weg zurück, ändern Sie eine Inkscape-Einstellung und setzen Sie Mavericks dann wieder auf eine Menüleiste auf jedem Bildschirm.

Wählen Sie unter dem Menüpunkt „Fenster“ der Anwendung „Alle anordnen“. Dies funktionierte für Microsoft PowerPoint für Mac, es funktioniert möglicherweise nicht für alle.

Ich habe ein ähnliches Problem auf meinem Mac, wenn ich MS Powerpoint öffne, da es nicht auf dem Bildschirm angezeigt wird. Der einfachste Weg ist, zur Menüleiste von Powerpoint oben auf Ihrem Mac-Bildschirm zu gehen und auf „Fenster“ und dann darunter auf „Alle anordnen“ zu klicken. Die fehlenden/ausgeblendeten PowerPoint-Fenster werden angezeigt

Die einfachste Lösung, die ich für dieses Problem gefunden habe, besteht darin, mit der rechten Maustaste auf das entsprechende Symbol in der Taskleiste zu klicken und dann „Ausblenden“ auszuwählen. Sie können dann dasselbe tun und "Anzeigen" auswählen, und dann erscheint Ihr fehlendes Fenster erneut.

Dies hat bei mir nicht funktioniert.

Das funktioniert bei mir auf dem Mac:

  1. Führen Sie die Trackpad-Geste „Drei-Finger-Spreizen“ aus (nicht sicher, wie der technische Name dafür lautet), um die Anwendungen auf jedem Bildschirm anzuzeigen.
  2. Ziehen Sie Photoshop von meinem Laptopbildschirm auf meinen externen Monitorbildschirm.

Anfangs ist die Photoshop-Kopfleiste noch außerhalb des Bildschirms, aber sobald Sie irgendwo auf Photoshop klicken, passt sie sich an.