Есть действительно дерьмовый и глючный способ автоматизировать это, но я все равно выложу.
Вы можете создать новый профиль в настройках iTerm2 (панель «Профиль»). Давайте назовем это «LargeFont». Вы можете клонировать его из стандартного, нажав ⌘ = .
Установите размер шрифта, который вы хотите, чтобы он отображался в текстовой панели вновь созданного профиля.
Теперь вот трюк. Вы не можете изменить размер шрифта или профиль сеансов терминала, используя AppleScript (по крайней мере, я не нашел способа), но вы можете выполнять команды в каждом сеансе, используя AppleScript, и в iTerm2 есть специальная escape-последовательность, которая поддерживает изменение профилей для сеанса, в котором он был echo
редактирован.
Итак, вы можете выполнить это:
echo -e "\033]50;SetProfile=LargeFont\a"
в каждом открытом сеансе сменить профиль терминала на «LargeText».
Теперь мы можем использовать AppleScript для автоматизации выполнения всех открытых сессий:
tell application "iTerm"
repeat with theTerminal in terminals
tell theTerminal
repeat with theSession in sessions
tell theSession
write text "echo -e '\\033]50;SetProfile=LargeText\\a'"
end tell
end repeat
end tell
end repeat
end tell
Обратите внимание, что он просто записывает текст (буквально) в каждый сеанс, поэтому, если у вас есть какой-либо текстовый редактор, открытый на одной из ваших вкладок - он не будет работать в нем и вставит команду echo в ваш код / файл конфигурации вместо. Если на одной из вкладок запущена команда ping - она тоже не будет работать.
Вы должны убедиться, что ни в одной из ваших оболочек не работает интерактивный материал.
Вы также оставите эти команды в истории вашей оболочки. Вы можете обойти это, добавив пробел перед самой командой (например echo -e ...
), это работает по крайней мере в zsh.
Вот функция Zsh:
function iterm_change_profile() {
osascript -e "
tell application \"iTerm\"
repeat with theTerminal in terminals
tell theTerminal
repeat with theSession in sessions
tell theSession
write text \" echo -e \\\"\\\\033]50;SetProfile=$1\\\\a\\\"\"
end tell
end repeat
end tell
end repeat
end tell"
}
Таким образом, вы можете использовать это так:
iterm_change_profile LargeFont
Есть также недостаток - когда вы меняете профиль с более крупного шрифта на меньший, окно iTerm значительно изменяется.
Но, опять же, это действительно дерьмовый путь.