7

Кажется, что Spaces был разработан с учетом назначения приложений для пространства (см. Эту статью базы знаний). Даже приложения, такие как TotalSpaces, построены с этой моделью. Это кажется мне излишним, так как уже есть переключатель приложений (Cmd-Tab), который позволяет переключаться между приложениями.

Я хотел бы использовать пробелы как способ переключения между проектами. Так, например, у меня есть пространство для ProjectA, в котором есть окна для XCode, Safari, Sublime Text и Terminal. Затем у меня есть другое пространство для ProjectB, в котором также есть окно для XCode, Safari, Sublime Text и Terminal. Просто в окнах открыты разные документы.

Но поддерживать настройку неудобно, потому что мне приходится настраивать их снова и снова, и это особенно ужасно, когда я переключаюсь между компьютерами, мне приходится открывать пять окон и сам вводить их в нужное место. Есть ли какой-нибудь способ, которым я могу сгенерировать одношаговый скрипт, который устанавливает пространство так, как мне нравится автоматически? Условно-бесплатная, Applescript и т.д.? Или я просто пытаюсь включить мой стиль работы в функцию, созданную для кого-то другого?

1 ответ1

1

Вы уверены, что можете. Некоторое время назад я написал 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 секунд, прежде чем переключаться на следующий пробел и двигаться дальше.)

К сожалению, я не видел другого подхода к переключению мест. Надеемся, что кто-то может прийти и предоставить лучший способ переключения, чем отправка нажатий клавиш, или, возможно, способ заставить скрипт ждать без произвольной задержки.

Тем не менее, если вы не возражаете уделить вашему сценарию несколько секунд для запуска и запуска вашей среды, вы сможете легко упорядочить серию запусков приложений или открытий окон и выбор места с тем, что я предоставил.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .