HOWTO: Configurar dos monitores usando xrandr a partir de un xorg.conf vacío


ÍNDICE

1. ¿A quién va dirigido este artículo?
2. Procedimiento estándar con xrandr
3. Error por resolución mayor a la soportada
4. /etc/X11/xorg.conf vacío
5. Referencias y mayor información
6. ARandR: una interfaz gráfica para XRandR

1. ¿A quién va dirigido este artículo?

En ocasiones, resulta muy práctico trabajar con dos monitores conectados al equipo a fin de distribuir las aplicaciones que estamos utilizando y tener así un mejor panorama visual.
Es común que las tarjetas de video trabajen con drivers libres, razón por la cual no siempre se dispone de las herramientas de configuración completa, al menos de forma gráfica.
Una herramienta muy útil en estos casos es xrandr, el cual permite -entre otras cosas- configurar adecuadamente el uso de dos monitores y con una sola tarjeta gráfica instalada.
Otro aspecto a considerar, es que en las versiones de (K|X)Ubuntu a partir de la 9.10 Karmic Koala no se encuentra de manera explícita la configuración gráfica del sistema como antes sí se tenía en el archivo /etc/X11/xorg.conf
Por ello, para realizar algunas configuraciones individuales y específicas es necesario "generar" este archivo primero.

2. Procedimiento estándar con xrandr

KDE ofrece una herramienta para configurar la apariencia de la pantalla: KRandr. Sin embargo, es común que las opciones para extender el escritorio no funcionen apropiadamente, e incluso que en la pestaña Múltiples Monitores aparezca el mensaje: "Este módulo es solamente para configurar sistemas donde un sólo escritorio esta esparcido en diversas pantallas. Parece que no tienes esta configuración"
Es por esto que debemos recurrir a xrandr. Lo primero, en una consola escribimos:

$ xrandr

Lo cual mostrará las pantallas conectadas al equipo, así como información acerca de las resoluciones soportadas y tasa de refresco. Aparecerá algo como esto:

$ xrandr
Screen 0: minimum 320 x 200, current 1280 x 800, maximum 1280 x 800
VGA-0 connected 1024x768+1280+0 (normal left inverted right x axis y axis) 312mm x 234mm
   1024x768       85.0*+   85.0*    75.0 
   1152x864       75.0 
   800x600        85.1     75.0 
   640x480        85.0     59.9 
   720x400        70.1 
LVDS connected 1280x800+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
   1280x800       60.0 +
   1280x720       59.9 
   1152x768       59.8 
   1024x768       60.0     59.9*
   800x600        60.3     59.9 
   640x480        59.9     59.4

Esta información es importante para lo que sigue, especialmente las resoluciones para cada monitor.
Ahora se configura el extender el escritorio y posicionar adecuadamente ambos monitores, así por ejemplo el comando:

$ xrandr --output LVDS --mode 1280x800 --output VGA-0 --mode 1024x768 --right-of LVDS

... colocará el monitor conectado a la salida VGA (con una resolución de 1024x768) a la derecha del que está ubicado en la salida LVDS (con resolución 1280x800).
Si todo anda bien, la primer pantalla tendrá el escritorio tal y como lo hemos configurado, y el segundo monitor el fondo de pantalla genérico del tema KDE por defecto y sería posible arrastrar ventanas de un lado a otro, visualizando todo con las resoluciones establecidas.

3. Error por resolución mayor a la soportada

Pero, también puede darse que en consola aparezca un error como el siguiente:

$ xrandr --output LVDS --mode 1280x800 --output VGA-0 --mode 1024x768 --right-of LVDS
xrandr: screen cannot be larger than 1280x800 (desired size 2304x800)

En este caso, es necesario "crear" un escritorio virtual más grande para que abarque las resoluciones conjuntas de ambos monitores.
Se debe modificar el archivo /etc/X11/xorg.conf, de forma gráfica sería:

$ kdesudo kate /etc/X11/xorg.conf

O por consola:

$ sudo nano /etc/X11/xorg.conf

Se ubica la siguiente sección, y se añade la línea resaltada (tomando como ejemplo la resolución deseada indicada antes):

Section "Screen"
        Identifier      "Default Screen"
        Device          "Intel"
        Monitor         "Monitor"
        DefaultDepth    24
        SubSection "Display"
                Depth           24
                Modes           "1280×800" "1024×768" "800×600" "640×480"
                ###########################################################################
                Virtual         2304 800 #AGREGAR ESTA LÍNEA
                ###########################################################################
        EndSubSection
EndSection

Las demás líneas se muestran como referencia, es posible que el archivo en cada equipo tenga información distinta.
Es necesario reiniciar las X (o el modo gráfico), simplemente reiniciando el equipo, aunque se puede también ejecutar en consola:

$ sudo /etc/init.d/kdm restart

Volviendo a la consola, ejecutamos nuevamente xrandr con los parámetros de posición/resolución deseados:

$ xrandr --output LVDS --mode 1280x800 --output VGA-0 --mode 1024x768 --right-of LVDS

Mostrando esta vez el escritorio virtual extendido.

4. /etc/X11/xorg.conf vacío

En caso de que hayamos encontrado el archivo /etc/X11/xorg.conf vacío en una versión de (K|X)Ubuntu igual o más reciente que la 9.10, es necesario primeramente generar el archivo para luego añadir el parámetro de escritorio virtual.
Lo primero que se debe hacer, es abrir una TTY, ejecutando la combinación de teclas CTRL+ALT+F1, por ejemplo. Una vez ahí, y luego de loguearse, hay que detener "el entorno gráfico" de la siguiente manera:

$ sudo /etc/init.d/kdm stop

Ahora, se pide al sistema que genere un archivo con la configuración del modo gráfico (o servidor X):

$ sudo Xorg -configure

Lo anterior genera el archivo /home/usuario/xorg.conf.new el cual debe editarse.
Para abrir el archivo en modo gráfico, se ejecuta en consola:

$ kdesudo kate /home/usuario/xorg.conf.new

Posiblemente sea necesario alterar o incluso suprimir parte del contenido, dependiendo de las características del equipo. No se aborda este aspecto aquí ya que excede el propósito del presente artículo.
Es necesario ahora añadir la información del escritorio virtual, tal y como se mencionó antes:

Section "Screen"
        Identifier      "Default Screen"
        Device          "Intel"
        Monitor         "Monitor"
        DefaultDepth    24
        SubSection "Display"
                Depth           24
                Modes           "1280×800" "1024×768" "800×600" "640×480"
                ###########################################################################
                Virtual         2304 800 #AGREGAR ESTA LÍNEA
                ###########################################################################
        EndSubSection
EndSection

Se guarda y cierra el archivo. A continuación, el mismo se copia en el directorio donde el sistema lee la configuración del entorno gráfico:

$ sudo cp -r /home/usuario/xorg.conf.new /etc/X11/xorg.conf

Ahora hay que hacer efectiva esta configuración. Se abre una TTY (CTRL+ALT+F1 por ejemplo) y se detiene el entorno gráfico:

$ sudo /etc/init.d/kdm stop

Ahora se solicita configurar de nuevo:

$ sudo dpkg-reconfigure xserver-xorg

Se reinicia el equipo:

$ sudo reboot

Posteriormente, iniciando sesión, se invoca nuevamente a xrandr con los parámetros deseados:

$ xrandr --output LVDS --mode 1280x800 --output VGA-0 --mode 1024x768 --right-of LVDS

Teniendo de esta forma un escritorio extendido en dos monitores.

NOTA. Puede resultar útil escribir un script que detecte en el arranque del sistema si están ambos monitores conectados, y ejecute el comando de xrandr con los parámetros establecidos.

5. Referencias y mayor información

$ man xrandr

http://crysol.org/dos_monitores_con_xrandr
http://wiki.debian.org/XStrikeForce/HowToRandR12
http://doarmo.netne.net/2009/11/27/dos-monitores-en-kde-con-xrandr/

6. ARandR: una interfaz gráfica para XRandR

Existen varias interfaces gráficas (frontends) para XRandR, una de ellas es ARandR:


( http://screenshots.debian.net/screenshots/a/arandr/2238_large.png )

Con dicha interfaz gráfica es fácil posicionar la imagen de un monitor en relación a otros (arriba, abajo, izquierda, derecha), rotar la imagen (giros de 90 grados, hacia la izquierda o a la derecha), e incluso invertirla (tipo espejo). Además es posible ajustar las resoluciones individuales de los monitores en caso de que tengan distintas medidas físicas, o proporciones. Se pueden guardar perfiles y volver a cargar, eliminando así la necesidad de volver a ajustar las preferencias elegidas.

ARandR se encuentra en los repositorios de Ubuntu ( http://packages.ubuntu.com/search?keywords=arandr ), por lo que para su instalación sólo basta ejecutar:

$ sudo apt-get install arandr

y posteriormente se ejecuta desde el menú de configuraciones, o desde la línea de comandos. Más información en el sitio oficial: http://christian.amsuess.com/tools/arandr/ .