En DE podemos cambiar el tamaño del terminal (gnome-terminal, por ejemplo) para nuestra conveniencia, ¿cómo puedo saber el tamaño del terminal en términos de píxeles o el número de columnas y filas?
13
Si emite el comando
stty size
devuelve el tamaño del terminal actual en filas y columnas. Ejemplo:
$ stty size
24 80
Puede leer las filas y columnas en variables como esta (gracias al comentario de Janis ):
$ read myrows mycols < <(stty size)
Obtener el tamaño en píxeles requiere conocer la resolución de su pantalla y no creo que sttytenga acceso directo a dicha información.
bashelechocomando en esta respuesta no verá las variables, ya quereaden la tubería se ejecutará en una subshell. (Funciona enksh, sin embargo.) Parabashes posible que desee utilizar, por ejemplo,read myrows mycols < <( stty size ).En un entorno de escritorio , está utilizando X, y la
xwininfoutilidad puede mostrar el tamaño de la ventana en píxeles. Además, si está ejecutando en el escritorio (y no, por ejemplo, conectado de forma remota), el emulador de terminal proporciona una variable$WINDOWIDque puede usar como parámetro paraxwininfo, por ejemplo,y obtener una lista de este:
En este ejemplo, las líneas con
WidthyHeightson del tamaño en píxeles . La última línea, con-geometryda el tamaño en caracteres (así como la posición de la esquina superior izquierda - en píxeles).Hablando de cambiar el tamaño de la ventana, el
resizeprograma muestra el número de líneas y columnas. Para este ejemplo, muestraLa pregunta no indicaba cómo se podría usar la información, pero dado que el resultado es texto, en un formato predecible, es fácil de escribir. Aquí hay un ejemplo simple usando awk:
que imprime
fuente