Aumenta / Diminui o tamanho da fonte em iTerm2

23

Problema: Eu uso o laptop em movimento e conecto a um monitor externo quando estou no escritório. Como o monitor externo é muito grande, preciso aumentar as fontes na janela iTerm2 existente (geralmente uma) e todas as guias.
Solução alternativa:  Eu dimensiono as fontes de 2 a 4 vezes (pressionando Cmd-+ ) para cada guia que abri em uma janela (geralmente apenas uma).

Pergunta: Existe uma maneira fácil de automatizar aumentar / diminuir o tamanho da fonte para todas as guias da janela atual? Ou Se eu fosse criar dois perfis separados, poderia facilmente aplicar algum perfil a todas as abas atualmente abertas em uma janela?

    
por van 12.02.2015 / 10:37

1 resposta

20

Existe uma maneira muito ruim e bosta de automatizar isso, mas vou postar assim mesmo.

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

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

Agoraaquiestáotruque.VocênãopodealterarotamanhodafonteouoperfildassessõesdeterminalusandooAppleScript(pelomenoseunãoencontreiumjeito),masvocêpodeexecutarcomandosemtodasassessõesusandoAppleScript,eháumasequênciadeescapepersonalizadanoiTerm2quesuportaamudançadeperfisparaasessãoemquefoiecho'edin.

Então,vocêpodeexecutarisso:

echo-e"3]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

Por favor, note que ele simplesmente escreve o texto (literalmente) em cada sessão, então se você tiver algum editor de texto aberto em uma das suas abas - ele não funcionará nele, e irá colar o comando echo em seu código / arquivo de configuração em vez disso. Se você tiver um comando ping em execução em uma das guias, ele também não funcionará.
Você deve verificar se não há material interativo em execução em qualquer um dos seus shells.

Você também terá esses comandos no histórico do seu shell. Você poderia contorná-lo adicionando um espaço antes do próprio comando (como echo -e ... ), isso funciona pelo menos em 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 usar assim:

iterm_change_profile LargeFont

Há também uma desvantagem - quando você altera o perfil daquele com a fonte maior para a menor, a janela do iTerm é redimensionada significativamente.

Mas, novamente, é uma maneira muito ruim.

    
por 18.02.2015 / 12:52