C'è un modo davvero merdoso e pieno di errori per automatizzare questo, ma lo pubblicherò comunque.
È possibile creare un nuovo profilo nelle preferenze di iTerm2 (riquadro Profilo). Chiamiamolo "LargeFont". Puoi clonarlo da quello predefinito premendo ⌘ = .
Imposta la dimensione del carattere che desideri che venga visualizzata nel riquadro Testo del profilo appena creato.
Ora ecco il trucco. Non puoi cambiare la dimensione del carattere o il profilo delle sessioni del terminale usando AppleScript (almeno non ho trovato un modo), ma puoi eseguire comandi in ogni sessione usando AppleScript e c'è una sequenza di escape personalizzata in iTerm2 che supporta la modifica dei profili per la sessione in cui è stato echo
inserito.
Quindi, puoi eseguire quello:
echo -e "\033]50;SetProfile=LargeFont\a"
in ogni sessione aperta per cambiare il profilo del terminale in "LargeText".
Ora possiamo usare AppleScript per automatizzare l'esecuzione per tutte le sessioni aperte:
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
Nota che scrive il testo (letteralmente) in ogni sessione, quindi se hai un editor di testo aperto in una delle tue schede - non funzionerà in esso e incollerà il comando echo nel tuo codice / file di configurazione anziché. Se hai un comando ping in esecuzione in una delle schede, non funzionerà anche.
Dovresti assicurarti che non ci siano oggetti interattivi in esecuzione in nessuna delle tue shell.
Avrai anche questi comandi nella storia della tua shell. Potresti bypassarlo aggiungendo uno spazio prima del comando stesso (come echo -e ...
), questo funziona almeno in zsh.
Ecco la funzione 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"
}
Quindi potresti usarlo così:
iterm_change_profile LargeFont
C'è anche un inconveniente: quando cambi il profilo da quello con il carattere più grande a quello più piccolo, la finestra di iTerm si ridimensiona in modo significativo.
Ma, di nuovo, è un modo davvero schifoso.