Ripristina le finestre delle app negli spazi originali


23

Quando riapri un'app, tutte le sue finestre finiscono sul primo spazio, indipendentemente dal loro posizionamento originale:

Layout originale: un'app ha due finestre aperte, ognuna in uno spazio separato

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

Layout errato dopo il riavvio dell'app: entrambe le finestre sono nel primo spazio

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

Esiste un'impostazione o un'app che consentirebbe alle app di ripristinare le finestre negli spazi in cui si trovavano originariamente prima della chiusura dell'app?


Se hai intenzione di dare spazi separati alle singole finestre, non potresti semplicemente utilizzare la modalità a schermo intero, che essenzialmente fa la stessa cosa?
William T Froggard,

4
Lo schermo intero non è quello che sto cercando. Il mio flusso di lavoro tipico è avere uno spazio dedicato per ogni progetto a cui sto lavorando. Quindi ho molti spazi attivi, ognuno dei quali di solito ha una finestra di Chrome, una finestra dell'editor, una finestra di terminale, ecc. E non voglio perdere tempo a distribuire finestre su Spaces ogni volta che riavvio, riavvio un'app o un l'app si arresta in modo anomalo. Quindi sono davvero interessato a quello che vedi nel diagramma sopra: avere app o il sistema operativo ricordare quale spazio era ogni singola finestra prima che un'app venisse chiusa.
Jakub,

10
Non so perché le persone abbiano problemi con la domanda di OP. Ho l'impressione che le persone non capiscano come funzionano Spaces e Mission Control. Dal mio punto di vista, vedo frequentemente il problema del PO e il comportamento è incoerente tra le varie applicazioni, come le finestre Safari e Finder. A volte le finestre vanno ai loro vari spazi, a volte no.
Vzzdak,

@Vzzdak Un buon punto sul comportamento incoerente. Ho dimenticato di menzionarlo.
Jakub,

Anche se questa domanda è del 2015, è ancora completamente pertinente nel 2019. Non è solo Chrome. Vedo lo stesso problema con le finestre del Finder, ad esempio.
Jamie Cox,

Risposte:



0

Sono consapevole che la mia risposta non risolve il problema, ma è una soluzione alternativa. Sto usando un software chiamato Cinch e SizeUp per riposizionare le finestre. Il ridimensionamento di una finestra attraverso lo spazio e lo schermo è molto veloce ed è fatto usando la scorciatoia da tastiera.

Il software viene fornito con una versione di prova per testarlo. http://www.irradiatedsoftware.com/sizeup/


0

Non ho una risposta completa, ma oggi ho iniziato una decente pugnalata a questo problema usando applecript. Il seguente Applescript esegue circa metà del lavoro. Riporta tutte le finestre di ogni applicazione aperte su ogni desktop. Il prossimo passo è registrare tutto questo in un file e quindi implementare uno script per ridistribuire le finestre dopo il riavvio:

--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:

Ecco un esempio di quale sia la finestra di dialogo risultante che ottengo:

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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.