42 votos

Restaurar la aplicación Windows a sus espacios originales

Al reabrir una aplicación, todas sus ventanas terminan en el primer espacio, sin importar su ubicación original:

Diseño original: una aplicación tiene dos ventanas abiertas, cada una en un espacio separado

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

Diseño incorrecto después de reiniciar la aplicación: ambas ventanas están en el primer espacio

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

¿Hay alguna configuración o aplicación que permita que las aplicaciones restauren su Windows en los espacios en los que se encontraban originalmente antes de que se abandonara la aplicación?

0 votos

Si vas a dar espacios separados a cada una de las ventanas, ¿no podrías utilizar el modo de pantalla completa, que en esencia hace lo mismo?

10 votos

La pantalla completa no es lo que busco. Mi flujo de trabajo típico es tener un espacio dedicado a cada proyecto en el que estoy trabajando. Así que tengo muchos Espacios activos, cada uno de los cuales suele tener una ventana de Chrome, una ventana de editor, una ventana de terminal, etc. Y no quiero perder el tiempo distribuyendo las ventanas entre los Spaces cada vez que reinicio, reinicia una aplicación, o una aplicación se bloquea. Así que estoy realmente interesado en lo que se ve en el diagrama de arriba: hacer que las aplicaciones o el sistema operativo recuerden qué espacio tiene cada individuo. ventana era antes de dejar una aplicación.

18 votos

No sé por qué la gente tiene problemas con la pregunta del OP. Tengo la impresión de que la gente no entiende cómo funcionan los espacios y el control de la misión. Desde mi punto de vista, veo el problema del OP con frecuencia, y el comportamiento es inconsistente en varias aplicaciones, como Safari y las ventanas del Finder. A veces las ventanas van a sus diversos espacios, y a veces no.

14voto

Wayne Khan Puntos 875

editar 2 : A mí tampoco me funciona del todo: algunos Windows se restauran y otros no. El el nuevo identificador de error en Chromium es 1012034 y todavía necesita sus votos.

editar : Se ha implementado en la última versión de desarrollo (Chrome 79).

Aunque, por defecto, en cumplimiento de los requisitos de la interfaz de usuario de Apple, esta función sigue sin restaurar los espacios de trabajo si se sale de Chrome con Cmd-Q. Citando a sdy el autor del artículo:

Para la gente que quiere que Chrome siempre restaure los espacios originales de Windows, puede establecerlo ejecutando este comando en una ventana de terminal (para Canary, utilice com.google.Chrome.canary ):

defaults write com.google.Chrome NSWindowRestoresWorkspaceAtLaunch -bool YES

Para volver al comportamiento por defecto, ejecute:

defaults delete com.google.Chrome NSWindowRestoresWorkspaceAtLaunch

Respuesta original: Hay un error #74812 en Cromo. Vota por ella.

La misma pregunta sobre el superusuario .

4voto

hepcat72 Puntos 103

No tengo una respuesta completa, pero hoy, he empezado una puñalada decente en este asunto usando applescript. El siguiente Applescript hace aproximadamente la mitad del trabajo. Informa de todos los Windows de cada aplicación abierta en cada escritorio. El siguiente paso es registrar todo esto en un archivo y luego implementar un script para redistribuir los Windows después de reiniciar:

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

Aquí hay un ejemplo de lo que es el diálogo resultante que obtengo:

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

0voto

Florian Bidabe Puntos 255

Soy consciente de que mi respuesta no aborda su problema, pero es una solución cercana. Estoy usando un software llamado Cinch y SizeUp para reposicionar Windows. Cambiar el tamaño de una ventana en el espacio y en la pantalla es muy rápido y se hace usando un atajo de teclado.

El software viene con una versión de prueba para que lo pruebes. http://www.irradiatedsoftware.com/sizeup/

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X