42 votes

Restaurer les fenêtres des applications dans leur espace d'origine

Lors de la réouverture d'une application, toutes ses fenêtres se retrouvent sur le premier espace, quel que soit leur emplacement initial :

Disposition originale : une application a deux fenêtres ouvertes, chacune dans un espace séparé.

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

Mise en page incorrecte après le redémarrage de l'application : les deux fenêtres se trouvent dans le premier espace.

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

Existe-t-il un paramètre ou une application qui permettrait aux applications de restaurer leurs fenêtres dans les espaces où elles se trouvaient avant de quitter l'application ?

0 votes

Si vous voulez donner des espaces séparés à chaque fenêtre, ne pourriez-vous pas utiliser le mode plein écran, qui fait essentiellement la même chose ?

10 votes

Le plein écran n'est pas ce que je recherche. Mon flux de travail typique consiste à avoir un espace dédié pour chaque projet sur lequel je travaille. J'ai donc de nombreux espaces actifs, chacun d'entre eux comportant généralement une fenêtre Chrome, une fenêtre d'éditeur, une fenêtre de terminal, etc. Je ne veux pas perdre de temps à répartir les fenêtres entre les espaces chaque fois que je redémarre une application ou qu'une application se bloque. C'est pourquoi je suis vraiment intéressé par ce que vous voyez dans le diagramme ci-dessus : faire en sorte que les applications ou le système d'exploitation se souviennent de l'espace dans lequel chaque individu se trouve. fenêtre était avant qu'une application soit abandonnée.

18 votes

Je ne comprends pas pourquoi les gens ont des problèmes avec la question de l'OP. J'ai l'impression que les gens ne comprennent pas le fonctionnement de Spaces et de Mission Control. De mon point de vue, je rencontre fréquemment le problème du PO, et le comportement est incohérent dans diverses applications, telles que Safari et Finder Windows. Parfois, les fenêtres se dirigent vers leurs différents espaces, et parfois non.

14voto

Wayne Khan Points 875

modifier 2 : Cela ne fonctionne toujours pas COMPLÈTEMENT pour moi aussi : certaines fenêtres sont restaurées et d'autres non. Le site le nouveau numéro de bogue dans Chromium est 1012034 et elle a encore besoin de vos votes !

modifier : Il a été implémenté dans la dernière version de développement (Chrome 79) !

Bien que, par défaut, conformément aux exigences d'Apple en matière d'interface utilisateur, cette fonctionnalité ne permet toujours pas de restaurer les espaces de travail si vous avez quitté Chrome avec Cmd-Q. Citation de sdy l'auteur de l'article :

Pour les personnes qui souhaitent que Chrome restaure toujours les espaces d'origine de Windows, vous pouvez le faire en exécutant cette commande dans une fenêtre de terminal (pour Canary, utilisez com.google.Chrome.canary ):

defaults write com.google.Chrome NSWindowRestoresWorkspaceAtLaunch -bool YES

Pour revenir au comportement par défaut, exécutez :

defaults delete com.google.Chrome NSWindowRestoresWorkspaceAtLaunch

Réponse originale : Il existe un bug #74812 en chrome. Votez pour elle !

Même question sur Superuser .

0 votes

Y a-t-il le paramètre de contrepartie defaults write ... pour Firefox ? J'ai habituellement 6, 7 (ou plus) fenêtres Firefox réparties dans 4 espaces. Je voudrais en fait restaurer n'importe quelle fenêtre de n'importe quelle application, mais Firefox la plus haute. Merci !

0 votes

Pour plus de détails, il semblerait que Firefox 75 ait résolu le problème, mais que Firefox 77 ait introduit un bogue de régression, qui l'a à nouveau cassé lorsque l'option "Les écrans ont des espaces séparés" est activée dans Mission Control. Le ticket est le suivant bugzilla.mozilla.org/show_bug.cgi?id=1642310

0 votes

Cette réponse est spécifique à Chrome, tandis que les questions concernent les applications en général (Chrome n'était qu'un exemple).

4voto

hepcat72 Points 1077

Je n'ai pas de réponse complète, mais aujourd'hui, j'ai commencé à résoudre ce problème en utilisant Applescript. L'applescript suivant fait à peu près la moitié du travail. Il rapporte toutes les fenêtres de chaque application ouverte sur chaque bureau. L'étape suivante consiste à enregistrer tout cela dans un fichier, puis à mettre en œuvre un script pour redistribuer les fenêtres après le redémarrage :

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

Voici un exemple de la boîte de dialogue que je reçois :

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 Bidabé Points 362

Je suis conscient que ma réponse ne résout pas votre problème mais c'est une solution de contournement proche. J'utilise un logiciel appelé Cinch et SizeUp pour repositionner les fenêtres. Le redimensionnement d'une fenêtre dans l'espace et sur l'écran est très rapide et se fait à l'aide d'un raccourci clavier.

Le logiciel est fourni avec une version d'essai pour que vous puissiez le tester. http://www.irradiatedsoftware.com/sizeup/

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X