Stellen Sie die ursprünglichen Bereiche der App-Fenster wieder her

25

Beim erneuten Öffnen einer App werden alle Fenster unabhängig von ihrer ursprünglichen Position im ersten Space angezeigt:

Ursprüngliches Layout: Eine App hat zwei geöffnete Fenster, jedes in einem separaten Bereich

+-----[ Space 1 ]-----+  +-----[ Space 2 ]-----+
|                     |  |                     |
|  [Chrome window 1]  |  |  [Chrome window 2]  |
|                     |  |                     |
|                     |  |                     |
+---------------------+  +---------------------+

Falsches Layout nach App-Neustart: Beide Fenster befinden sich im ersten Space

+-----[ Space 1 ]-----+  +-----[ Space 2 ]-----+
|                     |  |                     |
|  [Chrome window 1]  |  |                     |
|  [Chrome window 2]  |  |                     |
|                     |  |                     |
+---------------------+  +---------------------+

Gibt es eine Einstellung oder eine App, mit der Apps ihre Fenster in den Bereichen wiederherstellen können, in denen sie sich vor dem Beenden der App befanden?

Jakub Roztocil
quelle
Wenn Sie einzelnen Fenstern separate Leerzeichen zuweisen möchten, können Sie nicht einfach den Vollbildmodus verwenden, der im Wesentlichen dasselbe bewirkt.
William T Froggard
4
Vollbild ist nicht das, wonach ich suche. Mein typischer Workflow besteht darin, für jedes Projekt, an dem ich arbeite, einen eigenen Bereich bereitzustellen. Ich habe also viele aktive Spaces, von denen jeder normalerweise ein Chrome-Fenster, ein Editor-Fenster, ein Terminal-Fenster usw. hat. Und ich möchte nicht jedes Mal, wenn ich neu starte, eine App oder eine App neu starte, Zeit damit verbringen, Fenster auf Spaces zu verteilen App stürzt ab. Daher interessiert mich genau das, was Sie in der obigen Abbildung sehen: Apps oder das Betriebssystem müssen sich merken, welcher Speicherplatz sich in jedem einzelnen Fenster befand, bevor eine App beendet wurde.
Jakub Roztocil
11
Ich bin mir nicht sicher, warum Menschen Probleme mit der Frage von OP haben. Ich habe den Eindruck, dass die Leute nicht verstehen, wie Spaces and Mission Control funktionieren. Aus meiner Sicht sehe ich das OP-Problem häufig, und das Verhalten ist in verschiedenen Anwendungen, z. B. in Safari- und Finder-Fenstern, inkonsistent. Manchmal gehen die Fenster zu ihren verschiedenen Räumen und manchmal nicht.
Vzzdak
@ Vzzdak Guter Punkt zu dem inkonsistenten Verhalten. Ich habe vergessen, das zu erwähnen.
Jakub Roztocil
1
Obwohl diese Frage aus dem Jahr 2015 stammt, ist sie auch 2019 noch vollständig relevant. Es handelt sich nicht nur um Chrome. Ich sehe zum Beispiel das gleiche Problem bei Finder-Fenstern.
Jamie Cox

Antworten:

8

Es gibt einen Fehler # 74812 in Chromium. Stimmen Sie dafür!

Gleiche Frage zum Superuser .

Bearbeiten : Es wurde in der neuesten Entwicklungsversion (Chrome 79) implementiert!

Obwohl diese Funktion standardmäßig den Benutzeroberflächenanforderungen von Apple entspricht, werden die Arbeitsbereiche mit dieser Funktion nicht wiederhergestellt, wenn Sie Chrome mit Cmd-Q beendet haben. Zitat sfy, der Feature-Autor:

Wenn Sie möchten, dass Chrome Windows immer in den ursprünglichen Bereichen wiederherstellt, können Sie dies festlegen, indem Sie diesen Befehl in einem Terminalfenster ausführen (für Canary verwenden Sie com.google.Chrome.canary):

defaults write com.google.Chrome NSWindowRestoresWorkspaceAtLaunch -bool YES

Führen Sie Folgendes aus, um zum Standardverhalten zurückzukehren:

defaults delete com.google.Chrome NSWindowRestoresWorkspaceAtLaunch
Victor Sergienko
quelle
0

Mir ist bewusst, dass meine Antwort Ihr Problem nicht behebt, aber es ist eine enge Problemumgehung. Ich verwende eine Software namens Cinch und SizeUp, um Fenster neu zu positionieren. Das Ändern der Größe eines Fensters über Raum und Bildschirm ist sehr schnell und erfolgt über eine Tastenkombination.

Die Software wird mit einer Testversion geliefert, mit der Sie sie testen können. http://www.irradiatedsoftware.com/sizeup/

Florian Bidabe
quelle
0

Ich habe keine vollständige Antwort, aber heute habe ich mit AppleScript einen ordentlichen Versuch gestartet. Das folgende Applescript erledigt ungefähr die Hälfte der Arbeit. Es werden alle Fenster jeder Anwendung gemeldet, die auf jedem Desktop geöffnet sind. Der nächste Schritt ist, dies alles in einer Datei aufzuzeichnen und dann ein Skript zu implementieren, um die Fenster nach dem Neustart neu zu verteilen:

--This applescript reports a list of application windows present on each desktop
--This is only a sample script intended to eventually be used to restore all application windows to their pre-reboot desktops

tell application "System Events"

    set windows_string to ""
    set numDesktops to (first paragraph of (do shell script "strings ~/Library/Preferences/com.apple.spaces.plist | grep -c ^\\\\$")) + 1
    --the following tcsh command can determine the number of desktops:
    -- @ x = ( `strings ~/Library/Preferences/com.apple.spaces.plist | grep -c '^\$'` + 1 ); echo $x

    -- switch to the first desktop:
    repeat with aDesktop from 1 to numDesktops
        key code 123 using {control down}
    end repeat

    repeat with aDesktop from 1 to numDesktops

        set windows_string to windows_string & return & return & "Desktop " & (aDesktop as string) & return
        delay 1
        get (the name of every application process whose class of windows contains window)

        repeat with P in the result

            set windows_string to windows_string & return & return & P & return

            get (every window of process (contents of P) whose value of attribute "AXMinimized" is false)

            repeat with W in the result

                set window_name to ((name of W) as string)

                --Stickies window names can be multi-line, so this trims from the first hard return onward
                set better_window_name to (my replacePattern:"[\\n].*" inString:window_name usingThis:"")
                if window_name is not equal to "" then
                    try
                        set windows_string to windows_string & better_window_name & return
                    on error
                        set windows_string to windows_string & "couldn't get window name" & return
                    end try
                end if

            end repeat

        end repeat

        --switch to the next desktop
        key code 124 using {control down}

    end repeat

    display dialog "List of windows on this desktop: " & return & return & windows_string

end tell

--Call like this: set res to my replacePattern:"\\s+" inString:"1 subtratcing-these: -2 3 4" usingThis:"-"
use framework "Foundation"
use scripting additions

on replacePattern:thePattern inString:theString usingThis:theTemplate
    set theRegEx to current application's NSRegularExpression's regularExpressionWithPattern:thePattern options:0 |error|:(missing value)
    set theResult to theRegEx's stringByReplacingMatchesInString:theString options:0 range:{location:0, |length|:length of theString} withTemplate:theTemplate
    return theResult as text
end replacePattern:inString:usingThis:

Hier ist ein Beispiel dafür, was der resultierende Dialog ist, den ich erhalte:

List of windows on this desktop: 



Desktop 1


iTunes
MiniPlayer


FluidApp
Found 626 tickets


Stickies
useful commands
System Config Notes
Special characters
Profile where a python scri…
XEMacs Tricks
Terminal Tips


Messages
Messages (3 unread)


FluidApp
Found 626 tickets


Slack
Slack - Princeton NPLC


FluidApp
Found 626 tickets


Desktop 2


iTunes
MiniPlayer


FluidApp
Found 626 tickets


Stickies
DAI


Messages
Messages (3 unread)


FluidApp
Found 626 tickets


Slack
Slack - Princeton NPLC


FluidApp
Found 626 tickets


Desktop 3


iTunes
MiniPlayer


Finder
Searching “Scripts”
Searching “Scripts”
Searching “Scripts”


FluidApp
Found 626 tickets


Stickies
RPST
Issues to resolve with RPST…


Messages
Messages (3 unread)


FluidApp
Found 626 tickets


Terminal
Terminal — -csh


TextEdit
Untitled 35.txt
Untitled 34.txt
Untitled 27.txt
Untitled 15.txt


Slack
Slack - Princeton NPLC


Safari
AppleScript: Essential Sub-Routines
Using Applescript to Execute a Complicated Keystroke - Stack Overflow
How to restore windows to their original desktops after reboot? - Ask Different


Script Editor
Untitled.scpt
Untitled 4.scpt
Untitled 3.scpt
paste_file_contents.scpt
Untitled 2.scpt


FluidApp
Found 626 tickets


Automator
Subtract.workflow (Quick Action)


Desktop 4


iTunes
MiniPlayer


FluidApp
Found 626 tickets


Stickies
GALAXY


Messages
Messages (3 unread)


FluidApp
Found 626 tickets


Terminal
Terminal — -bash
???c7??? 8yc`?h=??'?]b?c??k?k????Ԫ??m??d+ — -bash


Slack
Slack - Princeton NPLC


FluidApp
Found 626 tickets


Desktop 5


iTunes
MiniPlayer


FluidApp
Found 626 tickets


Stickies
TREEVIEW
When you start to work on a…
TreeView stats, legend, & d…
DATE OF SUBMISSION: 


Messages
Messages (3 unread)


FluidApp
Found 626 tickets


Slack
Slack - Princeton NPLC


FluidApp
Found 626 tickets


Desktop 6


iTunes
MiniPlayer


FluidApp
Found 626 tickets


Stickies
ALIZZI


Messages
Messages (3 unread)


FluidApp
Found 626 tickets


Slack
Slack - Princeton NPLC


FluidApp
Found 626 tickets


Desktop 7


iTunes
MiniPlayer


FluidApp
Found 626 tickets


Stickies
GARCIA


Messages
Messages (3 unread)


FluidApp
Found 626 tickets


Slack
Slack - Princeton NPLC


FluidApp
Found 626 tickets


Desktop 8


iTunes
MiniPlayer


FluidApp
Found 626 tickets


Stickies
EMILIA


Messages
Messages (3 unread)


FluidApp
Found 626 tickets


Slack
Slack - Princeton NPLC


FluidApp
Found 626 tickets
hepcat72
quelle