2010-09-29 16 views
7

Sto cercando modi per ridurre lo spreco di tempo impiegato per aprire tutte le applicazioni necessarie, posizionare finestre, aprire URL/file/cambiare directory/ecc. prima che inizi la vera codifica.Salvare e ripristinare applicazioni e layout

Nel mondo perfetto ci sarebbero 2 pulsanti contrassegnati 'SAVE STATE' e 'RESTORE STATE' per 'progetto'. Il tipo di funzionalità che trovi in ​​alcuni giochi.

Sono su un mac e ho appena trascorso ore e ore sbattendo la testa con 'Automator' (che per qualche motivo ha problemi ad aprire anche firefox dal dock) e poi a applescript (che mi dà la sensazione di trovarmi per una lunga corsa).

Cercando in rete mi ha portato a questo script:

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 

fa metà del lavoro (ridimensionare e posizionare le finestre attuali), ma cade a pezzi su una configurazione multi-monitor multi-desktop . Non ci sono informazioni di contatto per l'autore originale per chiedere aiuto o feedback.

Qualcuno può far luce sul salvataggio e il ripristino di applicazioni e layout? Sembra un compito così comune che dovrebbe avere alcune utilità ausiliarie. Il meglio che ho è la 'modalità di sospensione', ma sembra che devo fare un riavvio completo a giorni alterni e ho diverse applicazioni e layout per diversi progetti.

+0

potrebbe valere la pena chiedere il Super User. È possibile che ci siano già app là fuori che fanno questo genere di cose, e qualcuno su SU potrebbe saperlo. – Herms

+0

Hmmm forse. Incollerò anche questa domanda. Saluti. – zaf

risposta

1

Questa è una feature of Lion (Mac OS X 10.7) ... non vorrei uccidere se stessi su una funzione di Apple ha visto la necessità e ha implementato piuttosto senza soluzione di continuità ...

Apple feature page describing feature

+0

Sì, quando l'ho visto durante la recente conferenza degli sviluppatori ho dovuto sorridere ... – zaf

+1

La funzione Riprendi Leone non è utile se si desidera passare a diversi layout di finestre dell'applicazione per diversi "progetti". Sarebbe bello avere il comando di riorganizzare tutte le finestre (e aprire e chiudere alcune applicazioni) per iniziare nuovamente su un progetto diverso. –

Problemi correlati