有没有办法通过Applescript挂钩OSX睡眠/唤醒事件?

时间:2009-11-13 04:28:11

标签: macos osx-snow-leopard applescript

我想解决的问题非常简单。

当我打开MacBook的盖子时,我喜欢在屏幕的左侧安装Dock,但是当我回到家并将MacBook连接到我的Cinema显示器并设置双显示器时,我希望底座上的电影的底部,而不是MacBook的左侧。

每次连接/断开Cinema显示器时,我都不想进入首选项。

我有50%问题的解决方案,即我已经编写了以下Applescript代码来根据我的屏幕分辨率切换Dock的位置,但我必须手动调用它。

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

我的问题是:

  • 我可以直接在Applescript中将此代码挂钩到OSX睡眠/唤醒事件吗?是否有一些地方可以“注册”脚本,以便在我不知道的OS事件上调用?

  • 如果不是直接的,还有哪些其他选项可以挂钩到OSX事件?

  • 您有什么建议吗? 改进上面的Applescript代码?

感谢。

1 个答案:

答案 0 :(得分:4)

尝试通过Sleepwatcher执行您的脚本:http://www.bernhard-baehr.de/