Me gustaría obtener el tamaño de la ventana actual de un script de shell ...
Realmente no hay mucho más que decir ... Preferiría usar wmctrl.
fuente
Me gustaría obtener el tamaño de la ventana actual de un script de shell ...
Realmente no hay mucho más que decir ... Preferiría usar wmctrl.
wmctrl -lG
Te dará algo como:
oli@bert:~$ wmctrl -lG
0x0384c0d5 -1 1590 1030 330 170 bert N/A
0x01200023 -1 0 0 3840 1200 bert x-nautilus-desktop
0x01000003 -1 3840 2352 1920 24 bert Bottom Expanded Edge Panel
0x01000028 -1 0 2352 1920 24 bert Bottom Expanded Edge Panel
0x0500003e 0 676 252 1404 1015 bert Chromium
0x02e00021 0 3860 160 1361 1084 bert Liferea
0x02000047 0 6650 940 506 683 bert Social broadcast messages
0x04600004 0 4546 460 1263 833 bert oli@bert: ~
Con esto puede grep
y cut
hacia abajo en estos para que quede con los valores de geometría (columnas 3-6).
Para citar la página de manual para que comprenda exactamente cuáles son las columnas:
-l
Enumere las ventanas que administra el administrador de ventanas. Se genera una línea para cada ventana, con la línea dividida en columnas separadas por espacios. La primera columna siempre contiene la identidad de la ventana como un entero hexadecimal, y la segunda columna siempre contiene el número de escritorio (se usa un -1 para identificar una ventana fija). Si se especifica la opción -p, la siguiente columna contendrá el PID de la ventana como un entero decimal. Si se especifica la opción -G, aparecerán cuatro columnas enteras: desplazamiento x, desplazamiento y, ancho y alto. La siguiente columna siempre contiene el nombre del equipo del cliente. El resto de la línea contiene el título de la ventana (posiblemente con múltiples espacios en el título).
Creo que wmctrl no tiene ninguna opción para encontrar el Id de la ventana activa directamente.
Si alguien sabe cómo hacerlo, me interesa saberlo.
Dicho esto, aquí hay un par de scripts que imprimen el tamaño de la ventana activa.
Esto es: wmctrl + xdotool ... (sin usar sed).
Esto es: xwininfo + xdotool + sed
xwininfo
es parte dex11-utils
fuente
Use
xprop
oxwininfo
. Ambos vienen por defecto, no es necesario instalarEjemplos de uso:
Ambos comandos convierten el cursor en cuadrado / cruz para permitir seleccionar una ventana en particular.
Alternativamente, uno puede especificar la ventana en la línea de comando en forma XID
Otras publicaciones donde se usaron
En particular,
xwininfo
ha sido utilizado activamente por mí para secuencias de comandos, como en estas preguntas de AskUbuntu:fuente
Los scripts de shell no conocen ni se preocupan por las ventanas. En el mejor de los casos, se ejecutan en una terminal (que puede mostrarse o no en una ventana). Si desea obtener el ancho y la altura del terminal en caracteres, use la utilidad stty.
fuente
¡
tput cols
Funcioné bastante bien!fuente
wmctrl
, no estamos hablando de la consola sino de las ventanas de entorno gráfico.Tiene 3 pantallas, esta salida 3 líneas con las dimensiones:
fuente