Dos monitores (dual-head) con xrandr
Esta receta trata algunas prestaciones interesantes que ofrece el driver intel (para tarjetas nuevas) por medio de la utilidad
xrandr
. Lo realmente interesante es que puedes activar y desactivar la salida externa y cambiar la resolución de ambos monitores sin tener que reiniciar el servidor X.
Todo lo que cuento en esta receta sólo lo he probado con Debian en un VAIO VGN-SZ4XN utilizando la tarjeta Intel. Por supuesto, eso no excluye que pueda funcionar en otras máquinas con otras tarjetas de vídeo u otras distros GNU.
Ingredientes
- Debian GNU/Linux
- xrandr >= 1.2
Información
Lo primero es ver qué tienes:
Y si enchufas un monitor a la salida VGA (sin reiniciar las X ni nada):
Pues éstas son las resoluciones y frecuencias permitidas por el monitor del portátil (LVDS) y por el monitor externo que tengo conectado durante esta prueba (VGA).
Activando/desactivando la salida VGA
Lo siguiente hace que el monitor VGA muestre lo mismo que el LVDS, es decir, modo “clone”. Tan fácil como:
Y para desactivarla:
No es necesario que los dos monitores tengan la misma resolución, puedes poner la que quieras. El tamaño del escritorio se ajusta automáticamente de modo que el monitor con mayor resolución muestra un área adicional no visible en el monitor con menos resolución. Por ejemplo puedes hacer:
Escritorio extendido
También es posible definir un escritorio conjunto para los dos monitores (en lugar de usar “clone”). Para eso tienes que definir una posición, bien con pos
o bien con uno de --left-of
, right-of
, above
o below
. Por ejemplo, suponiendo que ya tienes activada la VGA y fijada la resolución:
Aunque también lo puedes hacer todo en el mismo comando:
Puede que al intentar crear un escritorio grande te devuelva este error:
Esto lo puedes arreglar definiendo un área suficientemente grande para el “Screen” (la primera línea que aparece al ejecutar xrandr
). Para eso, modifica tu fichero /etc/X11/xorg.conf
y añade una línea Virtual
en Screen/Display, por ejemplo:
«La zona muerta»
En el modo de «escritorio extendido» también puedes usar resoluciones diferentes para cada monitor, pero aquí me he encontrado con un problema. En el monitor de menor resolución hay una «zona muerta» no visible, pero que puede contener ventanas. Corresponde a la diferencia entre ambas resoluciones. Algo como:
+--------------+--------------+ | | | | | 800x600 | | 1024x768 | | | +--------------+ | | ZONA MUERTA +--------------+
En otros drivers que dan una funcionalidad similar, como TwinView este problema está resuelto. Si sabes cómo solucionarlo con xrandr, por favor, deja comentario.
Activando resoluciones
A veces te encuentras con monitores o proyectores que disponen de resoluciones que por varias razones no aparecen cuando se consultan sus datos EDID. xrand no permite cambiar a resoluciones no reconocidas, pero afortunadamente se pueden añadir. Por ejemplo, el proyector Sony VPL-CS5 devuelve esto:
Pero puedes añadir el maravilloso modo 1024×768 con:
y verás que:
Ahora puedes cambiar a ese nuevo modo sin ningún problema.
Y añadiendo
Si al tratar de hacer lo que explica la sección anterior obtienes un error:
tendrás que añadir dicho modo antes de activarlo. Y para eso necesitas la resolución y la descripción del “ModeLine”, que puedes obtener con aplicaciones como gft y cvt (que pertenecen al paquete xserver-xorg-core).
Ahora puedes añadir y activar el modo:
Referencias
man xrandr
- Paco Moya
[EDITADO]