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 stty
tenga acceso directo a dicha información.
bash
elecho
comando en esta respuesta no verá las variables, ya queread
en la tubería se ejecutará en una subshell. (Funciona enksh
, sin embargo.) Parabash
es posible que desee utilizar, por ejemplo,read myrows mycols < <( stty size )
.En un entorno de escritorio , está utilizando X, y la
xwininfo
utilidad 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$WINDOWID
que puede usar como parámetro paraxwininfo
, por ejemplo,y obtener una lista de este:
En este ejemplo, las líneas con
Width
yHeight
son del tamaño en píxeles . La última línea, con-geometry
da 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
resize
programa 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