2010-09-29 14 views
7

Poszukuję sposobów na ograniczenie czasu potrzebnego na otwarcie wszystkich potrzebnych aplikacji, położenie okien, otwieranie adresów URL/plików/zmienianie katalogów/itp. przed rozpoczęciem właściwego kodowania.Zapisywanie i przywracanie aplikacji i układu

W idealnym świecie pojawią się 2 przyciski oznaczone "ZAPISZ STAN" i "PRZYWRÓĆ STAN" za "projekt". Rodzaj funkcji, który można znaleźć w niektórych grach.

Jestem na komputerze Mac i spędziłem kilka godzin waląc głową w "Automatora" (który z jakiegoś powodu ma problemy z otwarciem firefoxa ze stacji dokującej), a następnie jabłka (co daje mi uczucie, że jestem w na długą przejażdżkę).

wyszukiwania w internecie doprowadziło mnie do tego skryptu:

http://snipt.net/Fotinakis/applescript-to-save-and-restore-window-positions/

#!/usr/bin/osascript 

-- Usage: 
-- $ osacompile -o windowPositions.compiled.scpt windowPositions.scpt 
-- $ osascript windowPositions.compiled.scpt --save 
-- $ osascript windowPositions.compiled.scpt --restore 

-- Change this to be the list of windows you want to save/restore 
property affectedProcesses : {"Chrome", "Adium", "Eclipse", "Terminal"} 
property windowRecord : {} 

on run argv 
if (count of argv) is equal to 0 then 
    log "Please specify one of --save or --restore." 
    return 
end if 

tell application "System Events" 
    if (item 1 of argv is equal to "--save") then 
    set windowRecord to {} 
    repeat with i from 1 to count affectedProcesses 
    set end of windowRecord to {0, {}, {}} 
    end repeat 
    repeat with p from 1 to count affectedProcesses 
    set processName to (item p of affectedProcesses) 
    if exists process processName then 
    log "Process '" & processName & "' exists" 
    tell process processName 
     set numWindows to count windows 
     set item 1 of item p of windowRecord to numWindows 
     repeat with i from 1 to numWindows 
     set end of item 2 of item p of windowRecord to position of window i 
     set end of item 3 of item p of windowRecord to size of window i 
     end repeat 
    end tell 
    end if 
    end repeat 
    else 
    repeat with p from 1 to count affectedProcesses 
    set processName to (item p of affectedProcesses) 
    if exists process processName then 
    log "Process '" & processName & "' exists" 
    tell process processName 
     set numWindows to item 1 of item p of windowRecord 
     repeat with i from 1 to numWindows 
     set position of window i to (item i of item 2 of item p of windowRecord) 
     set size of window i to (item i of item 3 of item p of windowRecord) 
     end repeat 
    end tell 
    end if 
    end repeat 
    end if 
end tell 
end run 

Czyni połowę pracy (zmiana rozmiaru i położenia bieżące okna), ale rozpada się na multi-monitor multi-pulpitów konfiguracji . Brak informacji kontaktowych oryginalnego autora, aby poprosić o pomoc lub opinię.

Czy ktoś może rzucić nieco światła na zapisywanie i przywracanie aplikacji i układu? Wydaje się, że to typowe zadanie, które powinno mieć pewne narzędzia pomocnicze. Najlepsze, co mam, to "tryb uśpienia", ale wydaje mi się, że muszę wykonywać pełny restart co drugi dzień i mam różne aplikacje i układ dla różnych projektów.

+0

Może warto pytać Super Użytkownika. Możliwe, że są już aplikacje, które robią tego typu rzeczy i ktoś z SU może wiedzieć. – Herms

+0

Hmmm może. Ja również wkleję to pytanie. Twoje zdrowie. – zaf

Odpowiedz

1

To feature of Lion (Mac OS X 10.7) ... nie zabije siebie nad funkcją Apple widział potrzebę i wdrożył raczej bezproblemowo ...

Apple feature page describing feature

+0

Tak, kiedy zobaczyłem, że na niedawnej konferencji deweloperów po prostu musiałem się uśmiechać ... – zaf

+1

Funkcja Lewe odbicie nie jest przydatna, jeśli chce się przejść do różnych układów okien aplikacji dla różnych "projektów". Byłoby miło mieć polecenie zmiany rozmieszczenia wszystkich okien (oraz otwierania i zamykania niektórych aplikacji), aby zacząć od nowa w innym projekcie. –

Powiązane problemy