Есть ли способ подключиться к событиям сна / пробуждения OSX через Applescript? - PullRequest
2 голосов
/ 13 ноября 2009

Проблема, которую я пытаюсь решить, довольно проста.

Когда я открываю крышку моего MacBook, мне хочется, чтобы док-станция находилась в левой части экрана, но когда я прихожу домой, подключаю свой MacBook к дисплею Cinema и настраиваю двойные мониторы, я хочу установить док-станцию ​​на нижняя часть кинотеатра, а не на левой стороне MacBook.

Мне не нужно входить в настройки каждый раз, когда я подключаю / отключаю дисплей Cinema.

У меня есть решение для 50% проблемы, а именно, я написал следующий код Applescript для переключения местоположения док-станции в зависимости от разрешения моего экрана, но я должен вызвать его вручную.

tell application "Finder" 
-- Determine Resolution
  set screenSize to bounds of window of desktop
  set screenWidth to item 3 of screenSize
  set screenHeight to item 4 of screenSize
end tell
if screenWidth is less than 1900 then    
    --MacBook Display    
    tell application "System Events"      
       tell dock preferences            
            set properties to {magnification:true, screen edge:left}
       end tell
    end tell
else
    --Cinema Display
    tell application "System Events"
        tell dock preferences
            set properties to {magnification:true, screen edge:bottom}
        end tell
    end tell
end if

Мои вопросы:

  • Можно ли подключить этот код к событиям сна / пробуждения OSX непосредственно в Applescript? Есть ли место, где вы можете «зарегистрировать» сценарии для вызова событий ОС, о которых я не знаю?

  • Если не напрямую, каковы другие варианты подключения к событиям OSX?

  • Есть ли у вас какие-либо рекомендации для улучшить код Applescript выше?

Спасибо.

1 Ответ

4 голосов
/ 13 ноября 2009

Попробуйте выполнить ваш скрипт с помощью Sleepwatcher: http://www.bernhard -baehr.de /

...