XRandR - Seleccionar resoluciones de Pantalla no disponibles desde las Preferencias del Sistema

Indice:

1 Introducción
2 Nociones sobre relación de aspecto y resolución de pantalla
3 Configurar las resoluciones deseadas
4 Script de inicio


1. Introducción

Desde que en GNU/Linux contamos con un KMS (Kernel Mode Setting) maduro, en la mayoría de los casos el sistema detecta las resoluciones de pantalla nativas correctamente lo que ha hecho que de a poco nos vayamos olvidando de las configuraciones de pantalla a través del archivo xorg.conf. Por distintos motivos puede que el usuario necesite configurar una resolución no detectada ni disponible con XRandR o desde las preferencias del sistema, y es aquí donde será de utilidad lo que se explicará a continuación.

2. Nociones sobre relación de aspecto y resolución de pantalla

La relación de aspecto o proporción de aspecto (aspect ratio) de la pantalla en un monitor, es la proporción entre su ancho y su altura. Se calcula dividiendo el ancho por la altura de la imagen visible en pantalla, y se expresa normalmente como “X:Y” (X es el ancho e Y la altura). Relaciones de aspecto típicas en monitores de computadoras son:
4:3 = 4/3 = 1,33
16:10 = 16/10 = 1,6
16:9 = 16/9 = 1,77

El producto de X por Y se denomina Resolución de Pantalla. En un monitor CRT la resolución máxima no está estrictamente relacionado con el número de píxeles, sino con las capacidades de la tarjeta de video y de barrido del monitor. En un monitor LCD la resolución máxima (nativa) viene dada por el número de píxeles que en su valor máximo, el producto XxY da el número real de píxeles de la pantalla o panel LCD. En éste último tipo de monitores no es posible elegir una resolución mayor que la nativa, y eligiendo la resolución máxima soportada obtendremos la mejor calidad de imagen, aunque será posible elegir resoluciones menores en decremento de la calidad de imagen que es muchas veces imperceptible si elegimos una resolución menor próxima a la máxima.
Por ejemplo, la resolución actual típica para pantallas LCD medianas o grandes de relación de aspecto 16:9 es de 1920x1080 píxeles, conocida como Full HD. Nótese que la división 1920/1080 nos da la relación de aspecto (1920/1080=16/9=1,77).
En diferentes condiciones, necesitaremos configurar resoluciones menores a la máxima. Y si la resolución deseada no están disponibles desde las configuraciones del sistema, podremos hacer lo que se explicará a continuación.

Información complementaria:
Relación de aspecto - Wikipedia
Resolución de pantalla - Wikipedia

3. Configurar las resoluciones deseadas

XRandR es una herramienta desde linea de comandos que permite una configuración dinámica o al vuelo (sin tener que reiniciar el sistema) de múltiples características de las pantallas disponibles, como: rotar, cambiar de tamaño, elegir salida, etc. Todo esto gracias a la extensión RandR de X Window System.
Bien, lo importante cuando elegimos una resolución de pantalla XxY (X por Y) es que mantengamos la proporción o relación de aspecto nativa del monitor, aunque podemos elegir otras resoluciones que no respeten la proporción nativa. Si mantenemos la proporción no habrá deformaciones de la imagen. Por ejemplo en un monitor LCD Full HD, las resoluciones que mantienen la proporción podrían ser: 1920x1080, 1600x900, 1280x720. En todos los casos si dividimos X sobre Y obtenemos 1,77=16/9
Para elegir resoluciones de pantalla válidas para nuestro monitor nos haremos del manual del mismo en donde figuran los datos técnicos que necesitaremos como resoluciones a determinadas frecuencias de refresco soportadas. Un cuadro típico en un manual es como el siguiente:

Nos interesa en especial la columna de la resolución de pantalla y la de frecuencia de refresco vertical. No podremos elegir combinaciones no soportadas porque el monitor se pondrá en negro y nos advertirá de ello. Por ejemplo si analizamos el cuadro anterior, notaremos que a partir de la resolución de 1280x1024=1310720 no soporta frecuencias verticales mayores a 60 Hz. En general y principalmente en monitores convencionales de tubo CRT, para una misma resolución, a mayor frecuencia soportada, mejor calidad de imagen.

Entonces los pasos a seguir para elegir una resolución no disponible desde la configuración del sistema son:

Desde la terminal escribimos:

xrandr

Y vemos las salidas o pantallas disponibles, que desde ahora llamaremos [salida], por ejemplo VGA-0 o DVI-0. Ubicamos la pantalla a la que queremos añadir una nueva resolución. En el ejemplo será la DVI-0.

Generamos una linea “modeline” con el comando “cvt”. La estructura de la orden debe ser:

cvt X Y [frecuencia_de_Refresco_Vertical]

por ejemplo:

cvt 1600 900 60

Nótese que siguiendo con el ejemplo, 1600x900=1440000 > 1280x1024=1310720 (1440000 mayor que 1310720), por lo que solo podemos elegir una frecuencia de 60 Hz.
Con la orden obtendremos una salida como la siguiente:

# 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

y solo nos interesa los datos a la derecha de la palabra “Modeline”, que llamaremos [modeline].
Ahora ya podemos definir un nuevo modo con xrandr:

xrandr --newmode [modeline]

el ejemplo sería:

xrandr --newmode "1600x900_60.00"  118.25  1600 1696 1856 2112  900 903 908 934 -hsync +vsync

Ahora debemos añadir el nuevo modo para que esté disponible a xrandr. La estructura sería:

xrandr --addmode [salida] XxY_frecuencia

En el ejemplo sería:

xrandr --addmode DVI-0 1600x900_60.00

Y por último podremos elegir la nueva resolución con:

xrandr --output [salida] --mode XxY_frecuencia

en el ejemplo:

xrandr --output DVI-0 --mode 1600x900_60.00

Si es una combinación soportada, el cambio de resolución será inmediato.
Si todo salió bien, procederemos a crear un script para que el sistema inicie con la nueva resolución de pantalla.

4. Script de inicio

Creamos un nuevo archivo de texto en nuestro /home/USUARIO y le ponemos un nombre, por ejemplo “xrandr-modes.sh”. Lo abrimos con Kate. Copiamos dentro de él lo siguiente, según el ejemplo:

#! /bin/bash
xrandr --newmode "1600x900_60.00"  118.25  1600 1696 1856 2112  900 903 908 934 -hsync +vsync
xrandr --addmode DVI-0 1600x900_60.00
xrandr --output DVI-0 --mode 1600x900_60.00

Se deberá modificar en cada caso para la resolución elegida. Guardamos los cambios y cerramos Kate. Lo hacemos ejecutable con:

chmod +x xrandr-modes.sh

Desde las Preferencias del Sistema - Arranque y Apagado – Autoarranque, a la derecha elegimos “Añadir script”, elegimos la ruta del script y desmarcamos la opción de “Crear como un symlink”. Le damos a Aceptar. Vemos que se añade al cuadro central. Desde allí elegimos en la opción desplegable “Pre-inicio de KDE”. Luego salimos. Existe un bug o problema en esa sección de las preferencias del sistema en donde hay veces que los cambios no se guardan. Volver a entrar y verificar que “xrandr-modes.sh” haya quedado en “Pre-inicio de KDE”.