Aumentar / diminuir o tamanho da fonte no iTerm2

31

Problema: eu uso laptop em qualquer lugar e conecto ao monitor externo quando estou no escritório. Dado que o monitor externo é muito grande, preciso aumentar as fontes na iTerm2janela existente (geralmente uma) e em todas as guias.
Solução alternativa: redimensiono as fontes de 2 a 4 vezes (pressionando Cmd-+) para todas as guias que abri em uma janela (geralmente apenas uma).

Pergunta: Existe uma maneira fácil de automatizar o aumento / diminuição do tamanho da fonte em todas as guias da janela atual? Ou, se eu fosse criar dois perfis separados, poderia aplicar algum perfil facilmente a todas as guias abertas no momento em uma janela?

furgão
fonte

Respostas:

25

Existe uma maneira realmente ruim e de buggy de automatizar isso, mas eu publicarei de qualquer maneira.

Você pode criar um novo perfil nas preferências do iTerm2 (o painel Perfil). Vamos chamá-lo de "LargeFont". Você pode cloná-lo do padrão pressionando ⌘ = .

Defina o tamanho da fonte que você deseja exibir no painel de texto do perfil recém-criado.

Agora, aqui está o truque. Você não pode alterar o tamanho da fonte ou o perfil das sessões do terminal usando o AppleScript (pelo menos não encontrei uma maneira), mas você pode executar comandos em todas as sessões usando o AppleScript, e há uma sequência de escape personalizada no iTerm2 que suporta alteração de perfis para a sessão em que foi echoeditado.

Então, você pode executar isso:

echo -e "\033]50;SetProfile=LargeFont\a"

em todas as sessões abertas para alterar o perfil do terminal para "LargeText".

Agora podemos usar o AppleScript para automatizar a execução de todas as sessões abertas:

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

Observe que ele apenas grava o texto (literalmente) em cada sessão, portanto, se você tiver algum editor de texto aberto em uma das suas guias - ele não funcionará e colará o comando echo no seu arquivo de código / configuração em vez de. Se você tiver um comando ping em execução em uma das guias - ele também não funcionará.
Você deve se certificar de que não haja nada interativo em execução em nenhuma das suas conchas.

Você também terá esses comandos no histórico do seu shell. Você pode ignorá-lo adicionando um espaço antes do próprio comando (como echo -e ...), isso funciona pelo menos no zsh.

Aqui está a função 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"
}

Então você pode usá-lo assim:

iterm_change_profile LargeFont

Também há uma desvantagem: quando você altera o perfil de fonte com fonte maior para fonte menor, a janela do iTerm é redimensionada significativamente.

Mas, novamente, é uma maneira realmente de merda.

Igor Hatarist
fonte
Obrigado, vou tentar. Uma coisa semelhante que eu gostaria no iTerm2 seria alterar também a Predefinição de cores (Solarized-Dark e Solarized-Light, dependendo da luz circundante). Suponho que vou criar um perfil separado para isso também.
van
1
Obrigado, @Igor. Funcionou bem, embora, como você mencionou, não seja o caminho mais limpo. E você pode desmarcar a opção de aumentar / diminuir a janela para redimensionar quando o tamanho da fonte mudar em Preferências gerais -> "Ajustar janela ao alterar o tamanho da fonte".
van
@van Haha, eu perdi totalmente essa opção, obrigado!
Igor Hatarist
acabei de descobrir outra coisa: se eu usar o TmuxIntegration , a alteração do tamanho da fonte funcionará em todas as guias (janelas / painéis tmux). A cor ainda é apenas por painel.
van