Как мне запустить новый терминал iTerm с помощью ярлыка?

Я создал сервис в автоматоре и назначил ярлык, и он работает.

введите описание изображения здесь

Но это не запускает новый терминал iTerm. Он показывает только уже запущенный

Как я могу открыть новую «вкладку» или новое «окно iTerm»?

Ответы (4)

Вы можете изменить действие в службе, определенной Automator, на действие AppleScript:

  • Выберите «Библиотека/запуск AppleScript» в окне «Действия».
  • Добавьте следующий AppleScript в созданное действие и сохраните:
if application "iTerm" is not running then
    activate application "iTerm"
else
    tell application "iTerm"
        create window with default profile
        activate
    end tell
end if

Это открывает iTerm, если он не запущен, иначе открывается новое окно. Дополнительные примеры сценариев AppleScript для iTerm см. в документации по iTerm.

Вы можете использовать сочетание клавиш iTerm:

  • Новая вкладка: Command ⌘+T
  • Новое окно: Command ⌘+N
вы должны сосредоточить приложение для этого. вопрос, кажется, требует глобального ярлыка, а не конкретного приложения.

Вы также можете сделать это с помощью skhd.

.skhdrc:

ctrl + cmd - t : osascript /Users/user/Library/Scripts/new-iterm-window.scpt

new-iterm-window.scpt:

tell application "iTerm"
    create window with default profile
    activate
end tell

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

Это единственный ответ, который сработал у меня правильно - как вы сказали, он работает из любого места (в отличие от подхода Automator). Кроме того, его намного проще настроить, не нужно использовать графический интерфейс.

Вы можете создать AppleScript, который имитирует ввод человека вручную. Другими словами, перетащите AppleScript и заставьте приложение стать самым передним приложением, а затем вызовите щелчок контекстного меню, как если бы вы щелкнули его мышью. Затем повторно сохраните его как свой сервис.

И пример, но не специфичный для вашего приложения:

activate application "ApplicationName"
tell application "System Events"
tell process "ApplicationName"
    keystroke "n" using {command down}
    delay 1
end tell
end tell