¿Cómo puedo encontrar la resolución de pantalla de un script de shell?
ubuntu
gnome
xorg
resolution
dave4420
fuente
fuente
$( )
sintaxis (es decirDIMENSIONS=$(xdpyinfo ...
). Luego, usesed
nuevamente para obtener los dos:WIDTH=$(echo $DIMENSIONS | sed -r 's/x.*//')
yHEIGHT=$(echo $DIMENSIONS | sed -r 's/.*x//')
.xdpyinfo
imprime un mensaje de error si no puede acceder a la información, por lo que la redirección de error a/dev/null
. Por esta razón es posible que desee agregar una redirección de error:xdpyinfo 2> /dev/null
. Por lo tanto, la piple completo es el siguiente:xdpyinfo 2> /dev/null | grep dimensions | sed -r 's/^[^0-9]*([0-9]+x[0-9]+).*$/\1/'
. Esto hará que tu script sea más sólido.xdpyinfo | grep dimensions
le dará la resolución total, si tiene varios monitores será la suma de todos ellos.xrandr --current
le dará la resolución para cada monitor.Utilizo este fragmento para encontrar la resolución máxima posible para rDesktop sin ir a pantalla completa:
Salida:
Decoración de ventanas menos (más o menos):
Salida:
¿Cuál es la resolución máxima para rDesktop sin pasar a pantalla completa?
Comando final:
Funciona bien hasta ahora, pero no he probado a fondo sin embargo.
Otro ejemplo es para screencast con
avconv
:fuente
xdpyinfo: Unable to open display "".
rdesktop [other_args] -g $(xrandr --current | grep '*' | uniq | awk '{print $1}')
.xrandr --current | grep '*' | awk -v line="$SCREEN" 'NR==line{print $1}' | cut -d 'x' -f1
si desea especificar una pantalla (con una configuración de varios monitores) (SCREEN
está indexada en 1)Podrías usar el
xrandr -q
comando. A partir de eso, puede crear un script de shell si es necesario.Para obtener más información sobre el comando, ingrese aquí o escriba man xrandr
fuente
fuente
xwininfo -root|sed '/Height/!d;s/.* //'
por altura yxwininfo -root|sed '/Width/!d;s/.* //'
por ancho.xdpyinfo
lo hará, con un poco de análisis. Da mucha información de la que luego tendrás que cavar el número de pantalla y las dimensiones defuente
Dos posibles alternativas producidas combinando las respuestas de @ user31752 y @ eliezer-e-vargas
Una expresión regular más simple:
o usando corte:
El uso de
grep '*' | uniq
@ eliezer-e-vargas obtiene una línea diferente (ej. "1440x900 59.90 * + 59.89") de salida xrandr, mientras que el grep 'conectado' obtiene uno simple (ej. "LVDS1 conectado 1440x900 + 0 + 0 ..... ").El uso de expresiones regulares por @ user31752 es bueno, por lo que la línea que estoy usando necesita una expresión regular más simple, o puede sustituirse con el comando de corte más simple.
Ejemplo de salida xrandr
fuente
Como en la respuesta aceptada pero menos complicada:
Ejemplo de salida:
fuente
Leer los datos de la pantalla del monitor
El estándar vesa proporciona un método para leer la resolución de la pantalla del monitor.
Un monitor generalmente admite múltiples resoluciones y tasas de actualización. Por supuesto, alguien preferirá el máximo (físico).
Para leer los datos de este monitor, pruebe una de estas soluciones:
edid-decode
Si no está instalado, escriba
Luego lee el
edid
archivoread-edid
Instalar con
Luego lea a través de i2c los datos del monitor de pantalla y analícelo
Hexdump los datos edid
En caso de que las herramientas edid no estén instaladas, puede volcar el
edid
archivo hexadecimal, por ejemplo:Para cifrar este archivo hexadecimal, eche un vistazo a wiki o descargue las especificaciones edid .
fuente