¿Se puede cambiar el tamaño de una ventana de Terminal con un comando de Terminal?

38

Para poder cambiar el tamaño de la ventana a un cierto tamaño desde la Terminal.

LopSae
fuente

Respuestas:

58

Sí. El terminal admite secuencias de escape para manipular ventanas, incluidos el tamaño y la posición, las capas y la minimización. Las dimensiones se pueden expresar en píxeles o caracteres. Consulte Secuencias de control de Xterm para obtener más información (busque “Manipulación de ventanas”; si no está familiarizado con la notación, “CSI” significa “Introductor de secuencia de control”, que es ESC [).

Por ejemplo, este comando de shell establecerá la ventana en 100x50 caracteres:

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

Minimice la ventana por unos segundos, luego restaure:

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

Mueva la ventana a la esquina superior / izquierda de la pantalla:

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

Zoom en la ventana:

printf '\e[9;1t'

Traiga la ventana al frente (sin cambiar el foco del teclado):

printf '\e[5t'

Habilitación de las secuencias de control en emuladores de terminal

Algunos emuladores de terminal ignoran estas secuencias de control de forma predeterminada y requieren configuración para habilitarlas.

Para habilitarlos en XTerm , establezca el siguiente recurso en verdadero:

allowWindowOps

Para habilitarlos en iTerm2 , anule la selección de la siguiente preferencia:

Preferencias> Perfiles> [perfil]> Terminal> Desactivar el cambio de tamaño de la ventana iniciada por la sesión

Chris Page
fuente
¡Esto es simplemente perfecto!
LopSae
2
¡De ahora en adelante eres mi dios!
d12frosted
2
Esto no parece funcionar en Yosemite con iterm2
Jistanidiot
Esto funciona muy bien, pero parece que Terminal no acepta cambios de tamaño que harían que la ventana solo sea parcialmente visible en la pantalla. Acabo de probar printf '\ e [8; 100; 100t' y esto se truncó a 79x100, justo lo que podría encajar. Mi problema es que necesito de derivación el ratón sólo para este caso de la ampliación de la terminal más allá de los límites de la pantalla ...
PHS
1
Esto también funciona con iTerm2.
TextGeek
10

Siempre puedes usar 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"; }
Lri
fuente
Esto solo funciona para la ventana / pestaña de terminal actualmente activa. Para que esto funcione de manera confiable, obtenga el nombre de ruta actual del dispositivo tty y ubique la pestaña del terminal que coincida.
Chris Page
Ver también superuser.com/a/576357
LHF
10

Uso /usr/X11/bin/resize.

resize -s 30 80 te dará 30 filas y 80 columnas.

resize -s 30 0 te dará 30 filas y columnas completas.

resize -s 0 80 le dará filas completas y 80 columnas.

lhf
fuente
1
Esta solución no se limita a MacOS. Está basado en terminales, por lo que debería funcionar en todas las terminales. Lo uso para cambiar el tamaño de las ventanas PuTTY en Windows que ejecutan bash shells con TERM = xterm.
DrStrangepork
44
Esto no parece funcionar en Yosemite en iterm2.
Jistanidiot
Esto funciona para mí con Apple Terminal pero no con iTerm2. Sin embargo, enviar la secuencia de escape \ e [8; 24; 80t funciona con ambos.
TextGeek
1
@KrishenGreenwell Consulte la documentación de iTerm2. Por defecto ignora estas secuencias de control. Hay una preferencia por controlar si se ignoran.
Chris Page
1
Esta solución solía funcionar, pero creo que los comandos X11 se han ido. Tal vez, se pueden instalar instalando X11, pero no quiero instalar X11 solo para tener el comando de cambio de tamaño.
Gabriel
-2

En realidad, ya sabes, mover las ventanas de cambio de tamaño con un mouse es terriblemente lento.

He estado usando esta aplicación SizeUp durante mucho tiempo. Básicamente cambia el tamaño de cualquier ventana de la aplicación mediante el comando del teclado.

Puede hacer lo siguiente (mis comandos de teclado personalizados a continuación):

  • hacer la ventana a pantalla completa ( control+ option+ command+ m)
  • mover una ventana 1/2 tamaño de pantalla a la izquierda o derecha ( control+ option+ command+ / )
  • mover una ventana de tamaño de pantalla 1/4 a cualquier esquina ( control+ option+ shift+ / / / )
  • mover ventanas entre pantallas
  • mover ventanas entre espacios

Creo que esto podría hacer el truco y también ayudar con la administración de otras ventanas.

bolas espaciales
fuente
Aunque es útil, esto no aborda la pregunta que hizo el interrogador.
Andrew Ferrier