57 votos

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

Para poder redimensionar la ventana a un tamaño determinado desde el Terminal.

86voto

Yasmine Mustafa Puntos 21

Sí. El terminal admite secuencias de escape para manipular las ventanas, incluyendo el tamaño y la posición, la superposición y la minimización. Las dimensiones pueden expresarse en píxeles o en caracteres. Véase Secuencias de control Xterm para más detalles (busque "Window manipulation"; si no está familiarizado con la notación, "CSI" significa "Control Sequence Introducer", que es ESC [ ).

Por ejemplo, este comando del shell establecerá la ventana a 100x50 caracteres:

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

Minimice la ventana durante unos segundos y luego restablézcala:

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

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

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

Amplía la ventana:

printf '\e[9;1t'

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

printf '\e[5t'

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

Algunos emuladores de terminal ignoran estas secuencias de control por defecto y requieren una configuración para habilitarlas.

Para habilitar estos in XTerm , establezca el siguiente recurso como verdadero:

allowWindowOps

Para habilitar estos in iTerm2 , anule la selección de la siguiente preferencia:

Preferencias > Perfiles > [perfil] > Terminal > Desactivar el cambio de tamaño de las ventanas iniciado por la sesión

0 votos

¡Esto es perfecto!

3 votos

¡A partir de ahora eres mi dios!

2 votos

Esto no parece funcionar en Yosemite con iterm2

15voto

Igor Zelaya Puntos 2266

Utilice /usr/X11/bin/resize .

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

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

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

1 votos

Esta solución no se limita a MacOS. Está basada en el terminal, por lo que debería funcionar en todos los terminales. Yo uso esto para redimensionar PuTTY Windows en Windows ejecutando shells bash con TERM=xterm.

4 votos

Esto no parece funcionar en Yosemite en iterm2.

0 votos

Esto me funciona con Apple Terminal pero no con iTerm2. Sin embargo, enviando la secuencia de escape \e [8;24;80t funciona con ambos.

10voto

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"; }

0 votos

Esto sólo funciona para la ventana/pestaña de la terminal actualmente activa. Para que esto funcione de forma fiable, obtenga el nombre de la ruta del dispositivo tty actual y localice la pestaña del terminal que coincida.

0 votos

Ver también superuser.com/a/576357

2voto

domsom Puntos 151

Mis disculpas por revivir una vieja pregunta, pero pensé que esta respuesta podría ser útil para otros.

Desde tedsmith3rd Aquí hay un bash para mover una ventana de la Terminal. La magia de las secuencias de comandos de la terminal.

function bumpNjump() {
  local xDimension="" yDimension="" width="" height="" OPTIND

  while getopts 'x:y:w:h:' thisArg
  do
     case "${thisArg}" in
        x) xDimension="${OPTARG}" ;;
        y) yDimension="${OPTARG}" ;;
        w) width="${OPTARG}" ;;
        h) height="${OPTARG}" ;;
     esac
  done

  if [ -n "${width}" -a -n "${height}" ]
  then
     printf '\e[4;'${height}';'${width}'t';
  fi

  if [ -n "${xDimension}" -a -n "${yDimension}" ]
  then
     printf '\e[3;'${xDimension}';'${yDimension}'t'
  fi
}

Combínalo con esto tamaño del término.bash script para obtener la geometría actual, y tendrás una forma fácil de controlar tu ventana de Terminal.

#!/bin/bash
# based on a script from http://invisible-island.net/xterm/xterm.faq.html
exec < /dev/tty
oldstty=$(stty -g)
stty raw -echo min 0

printf "\e[13t" > /dev/tty
IFS=';' read -r -d t -a pos

xpos=${pos[1]}
ypos=${pos[2]}

# Window (including chrome) size in pixels
printf "\e[14;2t" > /dev/tty
IFS=';' read -r -d t -a size

hsize=${size[1]}
wsize=${size[2]}

stty $oldstty

echo "bumpNjump -x $xpos -y $ypos -h $hsize -w $wsize"

-3voto

nairdaen Puntos 137

En realidad, mover y redimensionar Windows con el ratón es terriblemente lento.

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

Puedes hacer lo siguiente (mis comandos de teclado personalizados más abajo):

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

Creo que esto podría servir y también ayudar a la gestión de otras ventanas.

1 votos

Aunque es útil, no responde a la pregunta del autor.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X