Mejorando el renderizado de las fuentes de Ubuntu

Ubuntu (y Linux en general) usa la librería FreeType para la rasterización de texto, dando unos resultados bastante buenos aunque a veces no tanto como en otros sistemas operativos.

Una de las razones de esto es que no emplea algunas técnicas que es imposible implementar sin violar patentes de software.

Por suerte esto no es obstáculo para que existan algunos parches que nos permiten mejorar la calidad obtenida con FreeType en nuestras fuentes, y uno de esos es Infinality.

La instalación en Ubuntu es algo compleja ya que por una parte tenemos que instalar las librarías parcheadas desde un PPA (ésta es la parte fácil) pero luego hay algunos pasos extra que debemos hacer de forma manual.

El primer paso (instalación del FreeType parcheado) es como decía sencillo. Sólo necesitamos añadir el PPA y aplicar las actualizaciones:

sudo add-apt-repository ppa:no1wantdthisname/ppa

sudo apt-get update

sudo apt-get dist-upgrade

Ahora viene la parte manual:

1.- Descaga de los archivos necesarios

Vamos a http://www.infinality.net/blog/infinality-freetype-patches/ y descargamos dos archivos:

  • fontconfig-infinality-(la versión que sea).tar.bz2
  • freetype-infinality-(la versión que sea).tar.bz2

Los nombres de los archivos variarán cuando salgan nuevas versiones, a fecha de hoy son estos dos:

2.- Fontconfig-infinality

Debemos extraer el contenido del archivo fontconfig-infinality-1-20120615_1.tar.bz2 (como decía el nombre puede ser diferente en versiones nuevas) en /etc/fonts/

Dado que necesitamos permisos de root, la forma más fácil de hacerlo es primero descomprimir el archivo en cualquier otro sitio y luego abrir un explorador con permisos de root y usarlo para hacer la copia:

sudo nautilus

Una vez copiado, entra en /etc/fonts/conf.d/ con ese mismo nautilus que has abierto con permisos de root y borra todos los archivos excepto 52-infinality.conf (no está de más si quieres copiar a otra parte los archivos que vas a borrar, por si más adelante quisieras eliminar el parche Infinality).

3.- Fonts.conf

Si existe, borra el archivo .fonts.conf de tu carpeta de usuario. Puedes ver los archivos ocultos pulsando ctrl+h en nautilus, o borrarlo directamente desde el terminal:

rm ~/.fonts.conf

4.- Infinality-settings.sh

Extrae el otro archivo que descargaste (freetype-infinality-(la versión que sea).tar.bz2). De aquí sólo necesitas un archivo llamado infinality-settings.sh.

Cópialo por ejemplo a ~/.local/bin

mkdir ~/.local/bin

cp infinality-settings.sh ~/.local/bin

Una vez copiado puedes editarlo para ajustar algunos parámetros que afectarán a cómo se renderizan las fuentes. Concretamente hacia el final del archivo (línea 711) tienes una variable llamada USER_STYLE. Por defecto tiene el valor DEFAULT.

USER_STYLE="DEFAULT"

Justo encima de esta línea hay un párrafo donde se listan todos los estilos disponibles que podemos poner aquí en vez de DEFAULT (OSX, UBUNTU, LINUX, WINDOWS7…). Selecciona el que prefieras y guarda el archivo.

5.- bashrc

Para que se cargue la configuración del infinality-settings.sh debemos hacer un source del archivo desde .bashrc y .gnomerc. Estos dos archivos están en tu carpeta de usuario (si no existiese .gnomerc puedes crearlo).

gedit ~/.bashrc

gedit ~/.gnomerc

Lo de hacer un “source” puede sonar raro pero es tan simple como añadir una línea al final de ambos archivos:

. $HOME/.local/bin/infinality-settings.sh

Fíjate que la línea empieza por un punto seguido de un espacio. Esto es lo que hace que el contenido del archivo se cargue junto con .bashrc (el cual se carga cada vez que iniciamos sesión o abrimos una consola).

Ya está todo listo, puedes cerrar y volver a abrir la sesión para ver las diferencias en el aspecto de las fuentes. Si quieres puedes volver a modificar el archivo infinality-settings.sh y volver a reiniciar la sesión para ir probando distintos valores de USER_STYLE.

  • JC

    Muy buena información, muchas gracias. Esta chido tu TECHCAT!!

  • fs9770

    Muy bueno el artículo, me funciona a la perfección, felicitaciones. Saludos.