Восстановите окна приложения в их первоначальных пространствах


25

При повторном открытии приложения все его окна оказываются на первом месте, независимо от их исходного размещения:

Оригинальный макет: одно приложение имеет два открытых окна, каждое в отдельном пространстве

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

Неправильный макет после перезапуска приложения: оба окна находятся в первом пробеле

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

Есть ли параметр или приложение, которое позволяло бы приложениям восстанавливать свои окна в тех местах, в которых они находились до закрытия приложения?


Если вы собираетесь выделять отдельные окна отдельным окнам, не могли бы вы просто использовать полноэкранный режим, который по сути делает то же самое?
Уильям Т Фроггард

4
Полный экран это не то, что я ищу. Мой типичный рабочий процесс - выделение места для каждого проекта, над которым я работаю. Поэтому у меня есть много активных пространств, в каждом из которых обычно есть окно Chrome, окно редактора, окно терминала и т. Д. И я не хочу тратить время на распределение окон по пространствам при каждой перезагрузке, перезапуске приложения или приложение вылетает. Так что мне действительно интересно только то, что вы видите на диаграмме выше: чтобы приложения или операционная система помнили, какое пространство было в каждом отдельном окне до закрытия приложения.
Якуб Розтоцил

11
Не уверен, почему у людей возникают проблемы с вопросом ОП. У меня складывается впечатление, что люди не понимают, как работает Spaces и Mission Control. С моей точки зрения, я часто вижу проблему OP, и ее поведение несовместимо в различных приложениях, таких как окна Safari и Finder. Иногда окна выходят в их различные пространства, а иногда нет.
Vzzdak

@Vzzdak Хорошая мысль о непоследовательности поведения. Забыл упомянуть об этом.
Якуб Розтоцил

1
Хотя этот вопрос относится к 2015 году, он все еще актуален в 2019 году. Это не только Chrome. Например, я вижу ту же проблему с окнами Finder.
Джейми Кокс

Ответы:


8

В Chromium есть ошибка # 74812 . Проголосуй за это!

Тот же вопрос о суперпользователе .

редактировать : это было реализовано в последней версии разработки (Chrome 79)!

Хотя по умолчанию в соответствии с требованиями пользовательского интерфейса Apple эта функция по-прежнему не восстанавливает рабочие пространства, если вы вышли из Chrome с помощью Cmd-Q. Цитирую sfyавтора статьи:

Для людей, которые хотят, чтобы Chrome всегда восстанавливал окна в их исходное пространство, вы можете установить это, запустив эту команду в окне терминала (для Canary, используйте com.google.Chrome.canary):

defaults write com.google.Chrome NSWindowRestoresWorkspaceAtLaunch -bool YES

Чтобы вернуться к поведению по умолчанию, выполните:

defaults delete com.google.Chrome NSWindowRestoresWorkspaceAtLaunch

0

Я знаю, что мой ответ не касается вашей проблемы, но это обходной путь. Я использую программное обеспечение под названием Cinch и SizeUp для изменения положения окон. Изменение размера окна в пространстве и на экране происходит очень быстро и выполняется с помощью сочетания клавиш.

Программное обеспечение поставляется с пробной версией для тестирования. http://www.irradiatedsoftware.com/sizeup/


0

У меня нет полного ответа, но сегодня я начал приличный удар по этому вопросу, используя applecript. Следующий Applescript выполняет примерно половину работы. Он сообщает обо всех окнах каждого приложения, открытого на каждом рабочем столе. Следующий шаг - записать все это в файл, а затем реализовать скрипт для перераспределения окон после перезагрузки:

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

Вот пример того, что я получаю в результате:

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
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.