Ajustando las pantallas, like a boss

Hoy compré un monitor nuevo. En realidad no es nuevo.  A mi me gusta reciclar y reusar, por lo que cuando puedo compro cosas que sean “de segunda”. Aparte del obvio beneficio económico de hacer esto, hay un beneficio ecológico, y es esta la razón principal por la cual yo escogo comprar algunas cosas en tiendas de segunda. Acá en San Francisco se encuentran cosas prácticamente nuevas si sabes a donde ir.

Bueno, la cosa es que compré mi monitor y lo conecté a mi laptop corriendo ubuntu. Me llevé una descepción cuando ví que la pantalla se “estiraba”. Mi laptop ya es muy vieja, y no la he cambiado por que tengo mis ojos puestos en un alien ware que cuesta algo carita. El hecho de que mi laptop es vieja me limita en muchas cosas, por ejemplo, la pantalla tiene una resolución máxima de 1024 x 768 a un radio 4:3. Mi nuevo monitor tiene un radio 5:4. Ubuntu me da solo las siguientes opciones para la resolución del monitor nuevo:

1152×864
1280×1024

Solo he puesto las que son mayores a 1024×768 ya que menores no me interesan.

De estas dos, la única que se ve bien es la de 1280×1024, la cual tiene un radio de 5:4. Esta resolución se ve de lujo, el problema es que compiz empieza a consumir más del 50% del cpu y aveces lo lleva hasta 100% solo para mover una ventana. Esto por supuesto no es bueno.

A 1280×1024 la pantalla se empieza a “estirar” ya que este radio es de 4:3, además compiz sigue de comelón.

Mi mejor opción fué 1024×768 ya que compiz prácticamente consume los mismos recursos que con un solo monitor. El problema aquí es que la pantalla se “estira” hacia abajo. Mi otro monitor (una tv) tiene la opción de mostrar solo negro el resto de la pantalla en lugar de “estirar” la imagen para cubrir toda la pantalla. El monitor nuevo no tiene esta opción.

Que podemos hacer en estos casos?

Lo primero que podemos hacer es aplicar una escala a nuestro monitor en cuestión. Para esto vamos usar la utilidad xrandr. Antes que nada necesitamos saber cuanto vamos a escalar nuestra pantalla. Para esto vasta con hacer unos cuantos sencillos cálculos matemáticos.

Lo primero que haces es determinar el radio o proporción de nuestra pantalla. Para esto puedes  probar con cada resolución que Ubuntu te ofrece. Notarás que a lado de la resolución te muestra las relación proporcional entre el ancho y el alto de tu monitor,

Provando con cada una encontrarás la que se vea bien, y esa es la relación proporcional entre los lados de tu monitor. Como tip, no prueves con resoluciones cuya relación proporcional es igual. Por ejemplo, en mi caso no tiene caso que prueve con 1024×768 y con 1152×864 ya que ambas tienen una relación proporcional de 4:3.

Una vez que encuentras la relación proporcional (radio de ahora en adelante), puedes hacer tus calculos matemáticos.

Otra forma de encontrar este radio es midiendo ambos lados lados de forma manual y calcular que parte del lado mas grande representa el lado más chico, pero eso es solo trabajo de más.

En mi caso, el radio es de 5:4, pero estoy usando una resolución de 1024×768 la cual tiene un radio de 4:3. Lo que quiero es escalar mi imagen de modo que sea de 1024×4/5(1024).

Para los que se han perdido con esto del radio. Lo único que quiere decir es que en un radio x:y hay x unidades por cada y unidades. De este modo, en un radio 5:4 hay 5 unidades de ancho por cada 4 unidades de alto. Esto es importante por que a partir de esto podemos determinar cuantos pixeles debemos tener de alto para cunplir el radio 5:4 de mi monitor.

Si por cada 5 unidades de ancho, hay 4 unidades de alto, entonces el alto total de  mi monitor es de 4/5 (cuatro quintos) del ancho del mismo. Con esto podemos determinar el alto de mi monitor de la siguiente manera:

(4 * 1024)/5

Esto nos da como resultado 819.2. Como no podemos tener decimales vamos a redondear a 819 pixeles de alto. Actualmente tiene 768, por lo que tenemos que encontrar el numero que multiplicado por 768 nos da 819:

768x = 819;

x = 819/768;

x=1.06640625

Y este es el factor por el cual tenemos que escalar nuestro monitor. Probablemente hay formas más rápidas de llegar a este numero, pero creo que esta es la forma más sencilla de comprender.

Ahora que ya tenemos nuestro factor, abrimos la terminal (ctrl + alt + t) y ponemos:

xrandr

Esto nos va a mostrar una lista de los diferentes monitores disponibles y sus propiedades. Lo que nos importa en este caso es el nombre. En mi caso, el monitor está conectado con en el puerto VGA, y tiene como nombre VGA1. Ahora que ya conozco el nombre puedo proseguir a hacer la escala:

xrandr –output VGA1 –scale 1×1.0664025

Después de un rápido flasheo en la pantalla veo que mi monitor se ve mucho mejor. La imagen ya no se ve estirada. La desventaga que he notado hasta ahora es que Xorg empieza a consumir más recursos, probablemente por que tiene que escalar la pantalla.

Otra opción que probablemente podría servir mejor es agregar un nuevo “mode” usando la opción –newmode de xrandr. En mi siguiente post, hablaré de esta segunda opción y daré mi opinión en cuanto a cual creo que es la mejor opción.

Es importante mencionar que estos cambios solo aplican durante la seción actual. Más adelante veremos como hacer estos cambios permanentes.

Les dejo esta imagen para que vean el antes y después de aplicar la escala al monitor.

NOTA:

Una forma más rápida de encontrar la escala es ver la diferencia entre ambos radios:

5:4 y 4:3

5/4 =  .8

4/3 = .75

.75x =  .8

x =  .8 / .75

x =  1.066666666667

El resultado es un poco diferente, pero es de hecho el resultado que obtenemos si no redondeamos 819.2

NOTA 2:

No noté anteriormente, pero xrandr te dice la medida de tu monitor en mm, por lo que no hay que medir manualmente si quieres poder calcular el radio sin probar todas los radios disponibles para ver cual es el mejor.