Сохранение и восстановление приложений и макета

Я ищу способы сократить время, потраченное впустую, на открытие всех необходимых приложений, размещение окон, открытие URL / файлов / изменение каталогов / и т. Д. до того, как начнется фактическое кодирование.

В идеальном мире было бы две кнопки с пометкой «СОХРАНИТЬ СОСТОЯНИЕ» и «ВОССТАНОВИТЬ СОСТОЯНИЕ» для каждого «проекта». Такая функция, которую вы найдете в некоторых играх.

Я использую Mac и просто потратил несколько часов, ударяя головой с помощью «Automator» (у которого по какой-то причине есть проблемы даже с открытием firefox из док-станции), а затем applescript ( что дает мне ощущение, что меня ждет долгая поездка).

Поиск в сети привел меня к следующему сценарию:

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

#!/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

Он выполняет половину работы (изменяет размер и положение текущих окон), но разваливается при настройке с несколькими мониторами и несколькими рабочими столами. У первоначального автора нет контактной информации, которую можно было бы попросить о помощи или обратной связи.

Может ли кто-нибудь пролить свет на сохранение и восстановление приложений и макета? Это такая обычная задача, для которой нужны вспомогательные утилиты. Лучшее, что у меня есть, это "спящий режим" но кажется, что мне приходится делать полный перезапуск через день, и у меня разные приложения и макеты для разных проектов.

7
задан zaf 29 September 2010 в 17:05
поделиться