Uma janela do Terminal pode ser redimensionada com um comando do Terminal?


38

Para que eu pudesse redimensionar a janela para um determinado tamanho no Terminal.

Respostas:


58

Sim. O terminal suporta seqüências de escape para manipular janelas, incluindo tamanho e posição, camadas e minimização. As dimensões podem ser expressas em pixels ou caracteres. Consulte Xterm Control Sequences para obter detalhes (pesquise "Manipulação de janelas"; se você não estiver familiarizado com a notação, "CSI" significa "Control Sequence Introducer", que é ESC [).

Por exemplo, este comando shell definirá a janela para 100x50 caracteres:

printf '\e[8;50;100t'

Minimize a janela por alguns segundos e restaure-a:

printf '\e[2t' && sleep 3 && printf '\e[1t'

Mova a janela para o canto superior / esquerdo da tela:

printf '\e[3;0;0t'

Zoom na janela:

printf '\e[9;1t'

Traga a janela para frente (sem alterar o foco do teclado):

printf '\e[5t'

Habilitando as seqüências de controle nos emuladores de terminal

Alguns emuladores de terminal ignoram essas seqüências de controle por padrão e requerem configuração para habilitá-las.

Para habilitá-los no XTerm , defina o seguinte recurso como true:

allowWindowOps

Para habilitá-los no iTerm2 , desmarque a seguinte preferência:

Preferências> Perfis> [perfil]> Terminal> Desativar redimensionamento de janela iniciado por sessão


Isso é perfeito!
LopSae #

2
A partir de agora você é meu deus!
usar o seguinte comando

2
Isso não parece para trabalhar em Yosemite com iterm2
Jistanidiot

Isso funciona muito bem, mas parece que o Terminal não aceita redimensionamentos que tornariam a janela apenas parcialmente visível na tela. Eu apenas tentei printf '\ e [8; 100; 100t' e isso foi truncado para 79x100, exatamente o que poderia ser adequado. Meu problema é que eu preciso de bypass o mouse apenas para este caso de ampliação do Terminal para além dos limites da tela ...
PHS

1
Isso também funciona com o iTerm2.
TextGeek

10

Você sempre pode usar o AppleScript:

setwidth() { osascript -e "tell app \"Terminal\" to tell window 1
set b to bounds
set item 3 of b to (item 1 of b) + $1
set bounds to b
end"; }

Isso funciona apenas para a janela / guia do terminal atualmente ativa. Para que isso funcione de maneira confiável, obtenha o nome do caminho do dispositivo tty atual e localize a guia do terminal correspondente.
Chris Página


10

Use /usr/X11/bin/resize.

resize -s 30 80 lhe dará 30 linhas e 80 colunas.

resize -s 30 0 fornecerá 30 linhas e colunas completas.

resize -s 0 80 fornecerá linhas completas e 80 colunas.


1
Esta solução não se limita ao MacOS. Como é baseado em terminal, deve funcionar em todos os terminais. Eu uso isso para redimensionar janelas PuTTY no Windows executando shell bash com TERM = xterm.
DrStrangepork

4
Isso não parece funcionar no Yosemite no iterm2.
Jistanidiot

Isso funciona para mim com o Apple Terminal, mas não com o iTerm2. No entanto, o envio da sequência de escape \ e [8; 24; 80t funciona com ambos.
precisa saber é o seguinte

1
@KrishenGreenwell Consulte a documentação do iTerm2. Por padrão, ele ignora essas seqüências de controle. Há uma preferência para controlar se eles são ignorados.
Chris Página

1
Essa solução funcionava, mas acho que os comandos do X11 se foram. Talvez eles possam ser instalados com a instalação do X11, mas não quero instalar o X11 apenas para ter o comando redimensionar.
Gabriel

-2

Na verdade, você sabe, mover uma janela de redimensionamento com o mouse é terrivelmente lento.

Eu uso este aplicativo SizeUp há muito tempo. Basicamente, redimensiona qualquer janela do aplicativo usando o comando do teclado.

Você pode fazer o seguinte (meus comandos de teclado personalizados abaixo):

  • tornar a janela em tela cheia ( control+ option+ command+ m)
  • mover uma janela 1/2 do tamanho da tela para a esquerda ou direita ( control+ option+ command+ / )
  • mover uma janela 1/4 do tamanho da tela para qualquer canto ( control+ option+ shift+ / / / )
  • mover janelas entre telas
  • mover janelas entre espaços

Eu acho que isso pode fazer o truque e também ajudar com outro gerenciamento de janelas.


Embora útil, isso não aborda a pergunta que o questionador fez.
Andrew Ferrier
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.