#applescript
#applescript
Вопрос:
Пытаюсь выяснить, как активировать окно в iTerm с определенным именем / заголовком с помощью applescript. Моя последняя попытка:
#!/usr/bin/osascript
tell application "iTerm2"
set winlist to every window
repeat with win in winlist
set the_title to title of window win
if the_title contains "Development" then
activate win
end if
end repeat
end tell
Но я получаю эту ошибку:
execution error: iTerm got an error: Can’t make title of window (window id 203) into type specifier. (-1700)
Окно находится в полноэкранном режиме, поэтому я не уверен, имеет ли это значение или нет.
Комментарии:
1.У окна iTerm нет
title
свойства, однако у него естьname
свойство. Таким образом, изменениеtitle
наname
устранит текущую ошибку. Но это само по себе не исправит все. Простое внесение этого изменения приведет к другой ошибке, и чтобы обойти это, удалитеwindow
из передwin
, чтобы у вас былоset the_title_ to name of win
. Это все равно не приведет вас туда, куда вы хотите перейти, потому чтоactivate
относится к приложению, а не к конкретному окну. Из руководства по языку AS «Выводит приложение на передний план, запуская его при необходимости».2. Да, я тоже пытался
name
. Нет кубиков. Я пошел совершенно другим путем. Но теперь моя проблема заключается в том, что окно в полноэкранном режиме больше всего отображается. Не уверен, что это можно сделать.3. Я беру свои слова обратно. Вы были правы. Необходимо использовать имя и удалить бит окна.
Ответ №1:
Следующий пример кода AppleScript работает для меня в macOS High Sierra в редакторе сценариев, чтобы переключиться на полноэкранное окно, содержащее имя цели:
tell application "iTerm"
set winlist to every window
repeat with win in winlist
set the_title to name of win
if the_title contains "Development" then
activate
set index of win to 1
end if
end repeat
end tell
Если целевое окно не находится в полноэкранном режиме, просто выводит его на передний план.
Комментарии:
1. Да, это очень похоже на то, что я придумал. Я работаю над одной незначительной проблемой, когда при запуске сценария из другого окна iterm на другом мониторе это окно iterm остается активным. Впрочем, я могу с этим смириться.
2. @StevieD, я тестировал в системе с одним монитором.