Kembalikan jendela aplikasi ke Spaces aslinya

25

Saat membuka kembali aplikasi, semua jendelanya berakhir di Space pertama, terlepas dari penempatan aslinya:

Tata letak asli: satu aplikasi memiliki dua jendela terbuka, masing-masing dalam ruang terpisah

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

Tata letak yang salah setelah aplikasi dimulai ulang: kedua jendela berada di Ruang pertama

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

Apakah ada pengaturan atau aplikasi yang memungkinkan aplikasi mengembalikan windows mereka di Spaces tempat mereka semula berada sebelum aplikasi itu keluar?

Jakub Roztocil
sumber
Jika Anda akan memberikan ruang terpisah untuk masing-masing jendela, tidak bisakah Anda menggunakan mode layar penuh, yang pada dasarnya melakukan hal yang sama?
William T Froggard
4
Layar penuh bukan yang saya cari. Alur kerja khas saya adalah memiliki Ruang khusus untuk setiap proyek yang saya kerjakan. Jadi saya punya banyak Spaces aktif, yang masing-masing biasanya memiliki jendela Chrome, jendela editor, jendela terminal, dll. Dan saya tidak ingin menghabiskan waktu mendistribusikan jendela di Spaces setiap kali saya reboot, restart aplikasi, atau crash aplikasi. Jadi saya benar-benar tertarik dengan apa yang Anda lihat pada diagram di atas: untuk memiliki aplikasi atau OS yang mengingat ruang masing-masing jendela sebelum aplikasi dihentikan.
Jakub Roztocil
11
Tidak yakin mengapa orang mengalami masalah dengan pertanyaan OP. Saya mendapat kesan bahwa orang tidak mengerti bagaimana Spaces dan Mission Control bekerja. Dari sudut pandang saya, saya sering melihat masalah OP, dan perilakunya tidak konsisten di berbagai aplikasi, seperti jendela Safari dan Finder. Terkadang windows pergi ke berbagai Spaces mereka, dan terkadang tidak.
Vzzdak
@ Vzzdak Poin bagus tentang perilaku yang tidak konsisten. Lupa menyebutkan itu.
Jakub Roztocil
1
Meskipun pertanyaan ini berasal dari 2015, masih sepenuhnya relevan di 2019. Ini bukan hanya Chrome. Saya melihat masalah yang sama dengan jendela Finder, misalnya.
Jamie Cox

Jawaban:

8

Ada bug # 74812 di Chromium. Pilih itu!

Pertanyaan yang sama pada Superuser .

sunting : itu diterapkan dalam versi pengembangan terbaru (Chrome 79)!

Meskipun, secara default, sesuai dengan persyaratan UI Apple, fitur ini masih tidak akan mengembalikan ruang kerja jika Anda keluar dari Chrome dengan Cmd-Q. Mengutip sfy, penulis fitur:

Untuk orang-orang yang ingin Chrome selalu mengembalikan windows ke ruang aslinya, Anda dapat mengaturnya dengan menjalankan perintah ini di jendela terminal (untuk Canary, gunakan com.google.Chrome.canary):

defaults write com.google.Chrome NSWindowRestoresWorkspaceAtLaunch -bool YES

Untuk kembali ke perilaku default, jalankan:

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

Saya sadar bahwa jawaban saya tidak mengatasi masalah Anda tetapi ini merupakan solusi yang dekat. Saya menggunakan perangkat lunak bernama Cinch dan SizeUp untuk memposisikan ulang windows. Mengubah ukuran jendela melintasi ruang dan layar sangat cepat dan dilakukan menggunakan pintasan keyboard.

Perangkat lunak ini dilengkapi dengan versi uji coba bagi Anda untuk mengujinya. http://www.irradiatedsoftware.com/sizeup/

Florian Bidabe
sumber
0

Saya tidak memiliki jawaban yang lengkap, tetapi hari ini, saya mulai menikam masalah ini dengan menggunakan applescript. Applescript berikut melakukan kira-kira setengah dari pekerjaan. Ini melaporkan semua jendela dari setiap aplikasi yang terbuka di setiap desktop. Langkah selanjutnya adalah merekam semua ini dalam file dan kemudian mengimplementasikan skrip untuk mendistribusikan kembali windows setelah reboot:

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

Berikut adalah contoh dari hasil dialog yang saya dapatkan:

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
sumber