Estoy buscando un método para informar la resolución de pantalla. Quiero configurar scripts para que se inicien rdesktop
, y quiero iniciarlo en varias máquinas con diferentes resoluciones, por lo que quiero una forma de determinarlo dinámicamente.
Estoy buscando un método para informar la resolución de pantalla. Quiero configurar scripts para que se inicien rdesktop
, y quiero iniciarlo en varias máquinas con diferentes resoluciones, por lo que quiero una forma de determinarlo dinámicamente.
Respuestas:
Usa el comando xrandr
. Sin ningún argumento, muestra las resoluciones disponibles y la actual (con un asterisco), por ejemplo:
$ xrandr | fgrep '*'
xrandr |g grep \*
hace el truco?
Solución alternativa: xdpyinfo | grep dimensions
. xdpyinfo
es anterior xrandr
, por lo que podría ser más portátil si utiliza una distribución muy antigua o algún servidor X diferente.
xdpyinfo
mientras xrandr
enumera correctamente las pantallas y su resolución. Esto puede o no ser un problema dependiendo del contexto.
xdpyinfo
parece informar dimensiones correctas en píxeles, informa una resolución incorrecta (DPI). Por ejemplo, en mi monitor con dimensiones 3840x2160 (nativas y reales) y tamaño 708mm x 399mm según lo informado xrandr
, xdpyinfo
dice que la resolución es 96x96 puntos por pulgada.
Puede obtener las resoluciones horizontal y vertical con el siguiente comando:
xdpyinfo | grep dimensions | awk '{print $2}' | awk -Fx '{print $1, $2}'
o, en forma más compacta (como lo sugiere Peter.O en este comentario):
xdpyinfo | awk -F'[ x]+' '/dimensions:/{print $3, $4}'
Por ejemplo, en una pantalla de 1600x900 esto producirá la siguiente salida:
1600 900
Luego puede colocar los valores en variables separadas usando el comando:
read RES_X RES_Y <<<$(xdpyinfo | awk -F'[ x]+' '/dimensions:/{print $3, $4}')
Visualice los valores de las variables anteriores con el comando:
echo $RES_X, $RES_Y
En una pantalla de 1600x900, la salida es:
1600, 900
Debería haber mirado un poco más duro antes de publicar. xrandr
se hará eco de la configuración de visualización actual, si no se le dan otros argumentos.
De forma predeterminada, esto volcará todas las configuraciones de visualización posibles, esto se puede filtrar de la siguiente manera:
xrandr | egrep '^[^ ]|[0-9]\*\+'
xrandr
Salida limpia para uso de imagemagickxrandr |grep \* |awk '{print $1}'