Calcular DPI adecuado para la pantalla del escritorio Linux.
Autor: Joel Barrios
Friday 26th of August 3:16 PM

Establecer el valor exacto de DPI (Dots per Inch) o PPP (Puntos por Pulgada), garantiza una mejor apariencia de las tipografías en el escritorio Linux. El valor predeterminado en prácticamente todos los entornos de escritorio es 96 dpi, algo que funciona bien para cualquiera que use monitores estándar promedio con resolución de 1024x768 píxeles y 1366x768 píxeles. ¿Pero qué hay de quienes usamos pantallas más grandes? ¿Qué hay de los artistas gráficos que usan Linux? En estos casos la tipografías simplemente se ven demasiado pequeñas y resulta incómodo leer algunos tipos de letras. A continuación muestro un método para calcular el valor exacto ideal de DPI.

Para ejemplificar los procedimientos, utilizaré una pantalla LED marca Samsung de 21.5 pulgadas y resolución de 1920 x 1080.
Calculo rápido y sencillo del valor óptimo de DPI.
Existen herramientas como Dippi que hacen todo el cálculo muy simple. Lamentablemente Dippi sólo está disponible en algunas distribuciones Linux como elementaryOS, Fedora, openSUSE, SUSE Linux Enterprise y ALDOS (en último Dippi este viene instalado de modo predeterminado).


Calculo complejo del valor óptimo de DPI.
Lo primero es calcular las medidas exactas de la pantalla. Para este fin se puede hacer utilizando una regla física o bien obteniendo la información directamente del dispositivo utilizando xrandr
. Ejemplo:
xrandr | grep -w connected
Lo anterior devuelve algo similar a lo siguiente:
HDMI-A-1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 477mm x 268mm
De la información mostrada, se deben recabar los datos correspondientes a la resolución predeterminada y las medidas de ancho y largo de la pantalla. Ejemplo:
Resolución: 1920 x 1080 píxeles
Ancho: 477 mm
Alto: 268 mm
Lo siguiente es convertir milímetros a centímetros:
Resolución: 1920 x 1080 píxeles
Ancho: 47.7 cm
Alto: 26.8 cm
A continuación se convierten las medidas en centímetros a pulgadas, dividiendo la medida en centímetros entre 2.54.
Resolución: 1920 x 1080 píxeles
Ancho: 477 mm = 18.7795275591 pulgadas
Alto: 268 mm = 10.5511811024 pulgadas
Después se divide la medida en píxeles den ancho entre entre medida del ancho en pulgadas y se divide el valor del alto en pixeles entre el valor del alto en pulgadas. Así se obtiene el valor de DPI. Ejemplo:
1920/18.7795275591 = 102.23899371
1080/10.5511811024 = 102.358208955
Para el monitor utilizado en este ejemplo, el DPI ideal correspondiente sería 102
.
Lo siguiente es acceder a la herramienta de configuración correspondiente para KDE Plasma 5, MATE o Xfce. Regularmente está en la misma sección donde se configuran las tipografías. Los cambios aplicarán de inmediato.
Configuración general y manual para X11.
Para gestores de ventanas como WindowMaker, IceWM, OpenBox o entornos de escritorio sin función para establecer DPI, editar el archivo ~/.Xresources
:
nano ~/.Xresources
Modificar o añadir:
Xft.dpi: 102
Para aplicar los cambios:
xrdb -merge ~/.Xresources
O bien:
xrandr --dpi 102
GNOME y Cinnamon.
GNOME y Cinnamon vienen configurados de modo predeterminado con un valor fijo de 96 DPI. Carecen de herramienta para establecer el valor de DPI personalizado. Esta configuración fue reemplazada por Factor de escalado de texto. Para poder establecer el valor exacto de DPI, se tiene que utilizar con gsettings
, debido a que las interfaces de configuración gráfica redondearán el número ingresado a un decimal.

Para obtener el valor óptimo de DPI obtenido en la sección anterior y dividir éste entre 96. Ejemplo:
102/96 = 1.0625
Ejecutar lo siguiente en GNOME utilizando el valor obtenido en la operación anterior como valor de text-scaling-factor
para org.gnome.desktop.interface
:
gsettings set org.gnome.desktop.interface text-scaling-factor 1.0625
Ejecutar lo siguiente en Cinnamon utilizando el valor obtenido en la operación anterior como valor de text-scaling-factor
para org.cinnamon.desktop.interface
:
gsettings set org.cinnamon.desktop.interface text-scaling-factor 1.0625
Xfce4.
Ejecutar xfce4-appearance-settings
, ir a pestaña Letra y establecer Ajuste personalizada de los PPP con el valor de DPI deseado.

LightDM.
Editar el archivo /etc/lightdm/lightdm.conf
:
vim /etc/lightdm/lightdm.conf
Ir a la sección [SeatDefaults]
o [Seat:*]
y establecer o añadir enxserver-command
con la opción -dpi 102
. Ejemplo:
xserver-command=X -dpi 102 -background none
Validación.
Para validar, instale screenruler
.
dnf -y install screenruler
Haga clic derecho sobre screenruler y luego haga clic en Settings. Establezca el valor de DPI deseado en Horizontal pixels per inch y Vertical pixels per inch.
Mueva screenruler hasta el extremo izquierdo de la pantalla y luego estire la regla regla hasta el limite derecho de la pantalla. La medida del ancho de la pantalla debe coincidir con el valor de ancho devuelto al ejecutar xrandr | grep -w connected
.
xrandr | grep -w connected
Lo anterior devuelve algo similar a lo siguiente:
HDMI-A-1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 477mm x 268mm
Nuevamente, la medida del ancho de la pantalla con screenruler debe coincidir con la medida del ancho devuelto por xrandr.