Сохранить и восстановить приложения и макет - PullRequest
7 голосов
/ 29 сентября 2010

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

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

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

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

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

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

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

1 Ответ

1 голос
/ 21 июня 2011

Это особенность Lion (Mac OS X 10.7) ... Я бы не стал убивать себя из-за того, что Apple видела в этом необходимость и реализовала его довольно легко ...

Apple feature page describing feature

...