Вы уверены, что можете. Некоторое время назад я написал 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
Понятно, что вы можете указывать приложениям, отличным от Terminal, открывать окна в заданном пространстве.
Вы можете запустить не работающее приложение с помощью do shell script "open -a application_name"
.
Проблема этого подхода заключается в том, что он полностью зависит от отправки нажатий клавиш, когда они могут быть отправлены слишком быстро, в конечном итоге поставлены в очередь и, в конечном счете, выполнены в неправильном порядке. Чтобы предотвратить это, необходимо добавить задержку (например, delay 0.1
) после каждого нажатия клавиши в сценарии, чтобы весь сценарий выполнялся в течение некоторого времени.
Или, например, если вы запускаете приложение, инициализация может занять некоторое время, и он откроет свои окна в любом активном пространстве, как только он зайдет так далеко (в отличие от того, какое пространство было активным при первом запуске приложения).). Таким образом, задержка должна быть установлена соответственно каждый раз, и иногда она может составлять несколько секунд. Хуже того, из-за различий в загрузке системы время может даже не совпадать от выполнения к выполнению, что заставляет вас использовать задержку, достаточную для учета сценария наихудшего случая. (Например, если вы запускаете приложение, которое может занять до 5 секунд с момента выполнения, чтобы отобразить его первое окно, вам нужно будет задержать 5 секунд, прежде чем переключаться на следующий пробел и двигаться дальше.)
К сожалению, я не видел другого подхода к переключению мест. Надеемся, что кто-то может прийти и предоставить лучший способ переключения, чем отправка нажатий клавиш, или, возможно, способ заставить скрипт ждать без произвольной задержки.
Тем не менее, если вы не возражаете уделить вашему сценарию несколько секунд для запуска и запуска вашей среды, вы сможете легко упорядочить серию запусков приложений или открытий окон и выбор места с тем, что я предоставил.