在OS X 10.8中,我该如何使用Applescript将窗口移动到目标空间?

7

我最终想要通过Alfred或Keymando来分配热键,以便将前置应用程序移动到任何一个空间。触发AppleScript似乎是成功的最有可能的途径。我搜索了很多,似乎过去可以通过AppleScript中的“spaces preferences”来实现这一点,但在OS X Lion中已经消失了。


我不知道如何使用AppleScript来实现这一点,但是您可以使用SizeUp或Spacey。链接 - Lri
1
@LauriRanta Spacey不兼容10.8,而且我也无法在10.8中让SizeUp的“移动到相邻空间”功能正常工作。此外,即使它能正常工作,Sizeup也不能让您按编号将应用程序移动到任意空间,只能移动到相邻的空间。 - Sean Mackesey
1个回答

7
如果你想要一个纯的AppleScript解决方案,那么你就没那么幸运了。
正如你所提到的,Spaces偏好设置已经消失了。此外,Mission Control.app没有可打开的字典,并且拉取窗口属性(tell application Finder to set x to the front finder window's properties)不显示任何与Spaces相关的内容。
System Events的字典有一个current desktop属性,我无法操控它,并且在任何情况下都被列为只读。
然而,第一个空间和仪表板之后的每个空间都有一个包含在.plist文件(com.apple.spaces)中的UUID,可以在~/Library/Preferences中找到。在该.plist中还有一个“app-bindings”部分,这表明你曾经能够通过Exposé/Spaces偏好设置访问的行为并没有完全消失。
不幸的是,在我的测试中,我添加了一个字典和字符串对到“app-bindings”,但即使重启后,我也不能将应用程序强制移到特定的空间。
似乎苹果在Mountain Lion的Mission Control行中放弃了Spaces网格,从而丢失了用户对每个空间中出现内容的控制。此外,由于交互方式的改变(与用户定义的网格相比,是即兴的额外桌面),我不会感到惊讶如果底层的事情也发生了变化。

感谢您提供的信息和努力。 - Sean Mackesey
这在OSX Mavericks中有改善吗? - neu242
2
@neu242 就 AppleScript 而言,没有与窗口当前空间相关的属性。我还没有尝试更改 com.apple.spaces plist,但它似乎与之前相同。 - robjwells

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接