Khôi phục các cửa sổ ứng dụng về Spaces ban đầu của chúng


25

Khi mở lại một ứng dụng, tất cả các cửa sổ của nó kết thúc trên Không gian đầu tiên, bất kể vị trí ban đầu của chúng:

Bố cục ban đầu: một ứng dụng có hai cửa sổ mở, mỗi cửa sổ nằm trong một Không gian riêng

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

Bố cục không chính xác sau khi khởi động lại ứng dụng: cả hai cửa sổ đều ở trong Không gian đầu tiên

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

Có cài đặt hoặc ứng dụng nào có thể giúp ứng dụng khôi phục các cửa sổ của chúng trong Spaces mà chúng được đặt trước khi ứng dụng bị thoát không?


Nếu bạn định cung cấp không gian riêng cho các cửa sổ riêng lẻ, bạn không thể sử dụng chế độ toàn màn hình, về cơ bản có thực hiện được điều tương tự không?
William T Froggard

4
Toàn màn hình không phải là thứ tôi đang tìm kiếm. Quy trình công việc điển hình của tôi là có một Không gian dành riêng cho từng dự án tôi đang thực hiện. Vì vậy, tôi có nhiều Spaces hoạt động, mỗi Spaces thường có cửa sổ Chrome, cửa sổ soạn thảo, cửa sổ terminal, v.v. Và tôi không muốn dành thời gian phân phối các cửa sổ trên Spaces mỗi khi tôi khởi động lại, khởi động lại ứng dụng hoặc ứng dụng gặp sự cố. Vì vậy, tôi thực sự quan tâm đến những gì bạn thấy trong sơ đồ trên: để có các ứng dụng hoặc HĐH nhớ không gian mỗi cửa sổ riêng lẻ trước khi thoát ứng dụng.
Jakub Roztocil

11
Không chắc chắn tại sao mọi người có vấn đề với câu hỏi của OP. Tôi có ấn tượng rằng mọi người không hiểu cách Spaces và Mission Control hoạt động. Từ góc nhìn của tôi, tôi thấy vấn đề của OP thường xuyên và hành vi không nhất quán trên các ứng dụng khác nhau, chẳng hạn như cửa sổ Safari và Finder. Đôi khi các cửa sổ đi đến các không gian khác nhau của họ, và đôi khi không.
Vzzdak

@Vzzdak Điểm hay về hành vi không nhất quán. Quên đề cập đến điều đó.
Jakub Roztocil

1
Mặc dù câu hỏi này là từ năm 2015, nhưng nó vẫn hoàn toàn phù hợp vào năm 2019. Đó không chỉ là Chrome. Tôi thấy vấn đề tương tự với các cửa sổ Finder, ví dụ.
Jamie Cox

Câu trả lời:


8

lỗi # 74812 trong Chromium. Bình chọn cho nó!

Câu hỏi tương tự trên Superuser .

chỉnh sửa : nó đã được triển khai trong phiên bản phát triển mới nhất (Chrome 79)!

Mặc dù, theo mặc định, tuân thủ các yêu cầu UI của Apple, tính năng này vẫn sẽ không khôi phục các không gian làm việc nếu bạn thoát Chrome bằng Cmd-Q. Trích dẫn sfy, tác giả tính năng:

Đối với những người muốn Chrome luôn khôi phục các cửa sổ về không gian ban đầu của họ, bạn có thể đặt điều đó bằng cách chạy lệnh này trong cửa sổ đầu cuối (đối với Canary, sử dụng com.google.Chrome.canary):

defaults write com.google.Chrome NSWindowRestoresWorkspaceAtLaunch -bool YES

Để quay lại hành vi mặc định, hãy chạy:

defaults delete com.google.Chrome NSWindowRestoresWorkspaceAtLaunch

0

Tôi biết rằng câu trả lời của tôi không giải quyết được vấn đề của bạn nhưng đó là một cách giải quyết chặt chẽ. Tôi đang sử dụng một phần mềm có tên Cinch và SizeUp để định vị lại các cửa sổ. Thay đổi kích thước cửa sổ trên không gian và màn hình thực sự nhanh và được thực hiện bằng phím tắt.

Phần mềm đi kèm với một phiên bản dùng thử để bạn kiểm tra nó. http://www.irradiatedsoftware.com/sizeup/


0

Tôi không có câu trả lời hoàn chỉnh, nhưng hôm nay, tôi đã bắt đầu một cú đâm tốt về vấn đề này bằng cách sử dụng applescript. Applescript sau đây làm khoảng một nửa công việc. Nó báo cáo tất cả các cửa sổ của mọi ứng dụng mở trên mọi máy tính để bàn. Bước tiếp theo là ghi lại tất cả điều này trong một tệp và sau đó triển khai tập lệnh để phân phối lại các cửa sổ sau khi khởi động lại:

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

Đây là một ví dụ về những gì hộp thoại kết quả tôi nhận được:

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
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.