你确定可以。我不久前写了一篇AppleScript来执行在每个空间打开终端窗口的繁琐任务。
互联网上的大多数示例最终都使用AppleScript来生成击键。例如,如果您将其设置为“control-2”将您带到空格2(可以在“键盘”首选项窗格中设置),则可以使用以下AppleScript:
tell application "System Events"
tell process "Finder"
keystroke "2" using control down --switches to space 2
end tell
end tell
更改为空格2.因此,我的脚本在每个空间中打开一个终端窗口,其工作方式如下:
tell application "System Events"
tell process "Finder"
keystroke "1" using control down --switches to space 1
end tell
tell process "Terminal"
activate
keystroke "t" using command down --new terminal tab
end tell
tell process "Finder"
keystroke "2" using control down --switches to space 2
end tell
...etc...
end tell
显然,您可以指示终端以外的应用程序在给定空间中打开窗口。
您可以使用启动非运行的应用程序 do shell script "open -a application_name"
。
这种方法的问题在于它完全依赖于发送击键,它们可能被发送得太快,最终排队,最终以错误的顺序执行。为了防止这种情况,有必要添加一个延迟(例如, delay 0.1
)在每次脚本击键后,使整个脚本花费一些时间来执行。
或者,例如,如果你启动一个应用程序,它可能需要一些时间来初始化,并且它将在任何活动的空间中打开它的窗口一旦它到达那里(与你第一次启动应用程序时活动的任何空间相反) )。因此,每次都必须适当设置延迟,有时可能需要几秒钟。更糟糕的是,由于系统负载差异,从执行到执行的时间甚至可能不一致,迫使您使用足够长的延迟来解决最坏情况。 (例如,如果您启动一个应用程序,从执行的那一刻起可能需要长达5秒才能显示其第一个窗口,您需要延迟5秒才能切换到下一个空格并继续前进。)
不幸的是,我还没有看到另一种切换空间的方法。希望有人能够提供更好的切换方式,而不是发送击键,或者也许是让脚本等待而不会产生任意延迟的方法。
尽管如此,如果你不介意给你的脚本几秒钟来启动和运行你的环境,你应该能够轻松地按照我提供的内容对一系列应用程序启动或窗口和空间选择进行排序。