Xrandr

De Jose Castillo Aliaga
Ir a la navegación Ir a la búsqueda

El comando xrandr simplifica la gestión de la resolución de pantalla en sistemas X11 o Wayland. Este comando permite ajustar dinámicamente la configuración de pantalla usando la extensión RandR de los protocolos X11 o Wayland.

Si queremos que el cambio sea permanente, hay que modificar el fichero xorg.conf.


Consultar las resoluciones disponibles

$ xrandr -q
Screen 0: minimum 320 x 200, current 1280 x 1024, maximum 32767 x 32767
VGA1 connected primary 1280x1024+0+0 (normal left inverted right x axis y axis) 338mm x 270mm
   1280x1024      60.0*+   75.0  
   1280x960       60.0  
   1152x864       75.0  
   1024x768       75.1     70.1     60.0  
   832x624        74.6  
   800x600        72.2     75.0     60.3     56.2  
   640x480        75.0     72.8     66.7     60.0  
   720x400        70.1  
HDMI1 disconnected (normal left inverted right x axis y axis)
VIRTUAL1 disconnected (normal left inverted right x axis y axis)


Esta opción muestra la lista de resoluciones compatibles con el monitor instalado. Si no está la resolución que necesitamos, puede que no esté el driver adecuado o que el monitor o la gráfica no la soporten.

Vemos 3 salidas: VGA1, HDMI1, VIRTUAL1

  • Sólo la VGA1 está conectada y tiene una resolució de 1280x1024
  • El modo marcado con * es el actual y el marcado con + es el preferido. El driver debería elegir este por defecto.

Para elaborar esa lista de resoluciones, Linux usa los datos EDID que proporciona el monitor. Con los comandos get-edid y parse-edid se puede analizar con más detalle la información que el monitor envía al ordenador.

Cambiar el modo

$ xrandr --output VGA1 --mode 1024x768

Con esto, hemos cambiado la salida VGA1 a 1024x768, observemos que es una de las disponibles en la lista anterior.

$ xrandr --output VGA1 --auto

Ahora volvemos a la configuración marcada con +, que es la elegida automáticamente.

Con este comando también podemos establecer una resolución determinada:

$ xrandr -s 1600x900
Este comando es muy simple, pero es de las primeras versiones. En las actuales es más adecuado ir usando los anteriores.

Añadir nuevas resoluciones

En ocasiones, GNU/Linux o el monitor no son capaces de comunicarse bien y no está disponible la resolución que nosotros sabemos que el monitor puede soportar. Para que funcione tenemos que crear una nueva resolución y luego forzarla.

Primero usamos el comando cvt. Este sirve para calcular parámetros necesarios para que una determinada resolución funcione bien.

$  cvt 1600 900 60
# 1600x900 59.95 Hz (CVT 1.44M9) hsync: 55.99 kHz; pclk: 118.25 MHz
Modeline "1600x900_60.00"  118.25  1600 1696 1856 2112  900 903 908 934 -hsync +vsync

La segunda línea contiene todos los parámetros que hay que pasarle a xrandr para que funcione esa resolución.

Luego se ejecuta:

$ sudo xrandr --newmode "1600x900_60.00"  118.25  1600 1696 1856 2112  900 903 908 934 -hsync +vsync
$ sudo xrandr --addmode VGA-0 1600x900_60.00

Para crear ese modo en xrandr para esa salida. (Puede que la salida no sea VGA-0, se puede averiguar su nombre con xrandr)


Enlaces

http://blog.desdelinux.net/xrandr-poderosa-herramienta-para-configurar-tu-monitor/

http://unix.stackexchange.com/questions/114359/how-to-get-edid-for-a-single-monitor

https://wiki.ubuntu.com/X/Config/Resolution