使用Applescript调整大小时限制窗口高度

时间:2014-04-12 12:38:38

标签: macos applescript osx-mavericks multiple-monitors

我有一台多显示器Mac桌面(4个显示器,每个显示器都是以4x4矩形排列的1920x1080),并且可以使用鼠标在所有显示器上打开一个窗口,填满整个四屏桌面。 (我正在运行小牛队并禁用了#34;显示器有单独的空格"复选框)

我希望能够自动执行此操作,因此使用AppleScript。但是,窗口不会打开到高于其中一个显示器(1080像素)的高度,即使显示器以4x4矩阵排列,因此桌面的总高度报告为2160像素。窗口宽度没有问题,脚本可以在水平显示中很好地打开。

以下是AppleScript的关键部分:

tell application "Finder"
    set bounds of first window to {0, 0, 3840, 1800}
end tell

窗口的垂直尺寸似乎有某种限制。我有什么想法可以实现自动化?

谷歌搜索已经对小牛队的多显示器支持抱有无尽的抱怨,但我无法找到与此特定问题相关的任何内容。

提前致谢

背景

我在两台多显示器配置上尝试了这个:

  1. 2014年初Mac Pro。 四个外部1920x1080显示器以2x2矩形排列。 报告的桌面大小为{0,0,38,2160}

  2. MacBook Pro Retina 2013年末: 两个外部1920x1200监视器一个排列在另一个之上 (当然还有笔记本电脑自带的2880x1800内置显示器) 报告的桌面大小为{0,0,3360,2400}

2 个答案:

答案 0 :(得分:0)

我没有多台显示器来测试这个,但在我的一台显示器上,(0,0)点是我屏幕的左上角。也许你需要调整你的第二个数量。我的建议是手动打开一个窗口。然后运行此代码以获取边界。然后尝试使用返回的值设置边界。当然,我仍然不知道这是否有效,但至少你知道你正在使用适当的界限。祝你好运。

tell application "Finder"
    return bounds of window 1
end tell

编辑 :一旦知道了正确的边界,就可以尝试使用系统事件调整窗口大小。系统事件不知道"界限"但它确实知道"位置" (你的边界中的前两个数字)和"大小" (你的边界中的第二个2个数字)。请尝试使用您的号码。

tell application "System Events"
    tell process "Finder"
        set position of window 1 to {0, 400}
        set size of window 1 to {800, 500}
    end tell
end tell

答案 1 :(得分:0)

不要恢复死亡主题,但是对于某些外部依赖项, 可能会大于监视器分辨率。你需要一个名为MegaZoomer [https://github.com/ianh/megazoomer]的程序......你需要EasySIMBL [https://github.com/norio-nomura/EasySIMBL]

首先安装EasySIMBL(可以从http://www.macupdate.com/app/mac/44354/easysimbl下载)。然后从(http://www.macupdate.com/app/mac/21275/megazoomer)下拉MegaZoomer ...将megazoomer包复制到EasySIMBL包dir中。您需要在SIMBL中启用该程序包。您可能需要重新启动。然后运行你的AppleScript,它应该可以工作。