Restaurar janelas do aplicativo para seus Spaces originais

25

Ao reabrir um aplicativo, todas as janelas terminam no primeiro espaço, independentemente da localização original:

Layout original: um aplicativo tem duas janelas abertas, cada uma em um espaço separado

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

Layout incorreto após a reinicialização do aplicativo: as duas janelas estão no primeiro espaço

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

Existe uma configuração ou um aplicativo que permita que os aplicativos restaurem suas janelas nos Espaços em que estavam originalmente localizados antes de o aplicativo ser encerrado?

Jakub Roztocil
fonte
Se você deseja atribuir espaços separados a janelas individuais, você não pode simplesmente usar o modo de tela cheia, o que essencialmente faz a mesma coisa?
William T Froggard 28/05
4
Tela cheia não é o que estou procurando. Meu fluxo de trabalho típico é ter um espaço dedicado para cada projeto em que estou trabalhando. Portanto, tenho muitos Spaces ativos, cada um dos quais geralmente possui uma janela do Chrome, uma janela do editor, uma janela do terminal etc. falha de aplicativo. Então, eu estou realmente interessado no que você vê no diagrama acima: ter aplicativos ou o SO lembrando qual espaço cada janela individual era antes de um aplicativo ser encerrado.
Jakub Roztocil 28/05
11
Não sei por que as pessoas estão tendo problemas com a pergunta do OP. Tenho a impressão de que as pessoas não entendem como o Spaces e o Mission Control funcionam. Na minha perspectiva, vejo o problema do OP com freqüência e o comportamento é inconsistente em vários aplicativos, como as janelas Safari e Finder. Às vezes, as janelas vão para seus vários espaços, e às vezes não.
Vzzdak
@Vzzdak Bom argumento sobre o comportamento ser inconsistente. Esqueci de mencionar isso.
Jakub Roztocil 28/05
11
Embora essa pergunta seja de 2015, ainda é completamente relevante em 2019. Não é apenas o Chrome. Eu vejo o mesmo problema nas janelas do Finder, por exemplo.
Jamie Cox

Respostas:

8

Há um bug # 74812 no Chromium. Vote nele!

A mesma pergunta no Superusuário .

edit : foi implementado na versão de desenvolvimento mais recente (Chrome 79)!

Embora, por padrão, em conformidade com os requisitos de interface do usuário da Apple, esse recurso ainda não restaure os espaços de trabalho se você sair do Chrome com o Cmd-Q. Citando sfy, o autor do recurso:

Para as pessoas que desejam que o Chrome sempre restaure as janelas em seus espaços originais, você pode definir isso executando este comando em uma janela de terminal (para Canary, use com.google.Chrome.canary):

defaults write com.google.Chrome NSWindowRestoresWorkspaceAtLaunch -bool YES

Para voltar ao comportamento padrão, execute:

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

Estou ciente de que minha resposta não soluciona seu problema, mas é uma solução alternativa próxima. Estou usando um software chamado Cinch e SizeUp para reposicionar janelas. O redimensionamento de uma janela no espaço e na tela é muito rápido e é feito usando o atalho do teclado.

O software vem com uma versão de teste para você testá-lo. http://www.irradiatedsoftware.com/sizeup/

Florian Bidabe
fonte
0

Não tenho uma resposta completa, mas hoje comecei uma facada decente nessa questão usando o AppleScript. O Applescript a seguir faz aproximadamente metade do trabalho. Ele relata todas as janelas de todos os aplicativos abertos em todas as áreas de trabalho. A próxima etapa é registrar tudo isso em um arquivo e implementar um script para redistribuir as janelas após a reinicialização:

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

Aqui está um exemplo de qual é o diálogo resultante que recebo:

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
fonte