Nerd Fonts y Fontconfig🔗

Nerd Font es, en cuestión de uso, una colección de fuentes tipográficas conocidas y dirigidas a programadores, las cuales han sido modificadas para agregarle iconos (glyphs).

Existen varias formas de instalarlas, dependiendo del sistema y si estarán disponibles de manera local al usuario o global al sistema. En el repositorio del proyecto es posible encontrar varias opciones para su instalación.

Personalmente he programado un script en Bash para la instalación de Nerd Fonts: nerd-fonts-update.bash

Algo a tomar en cuenta es el tamaño de la descarga de las fuentes tipográficas, por ejemplo: MPlus (246 MB) y Noto (889 MB).

Fontconfig🔗

La configuración de Fontconfig reside en el archivo $HOME/.config/fontconfig/fonts.conf y archivos con la extensión .conf en el directorio $HOME/.config/fontconfig/conf.d.

Confieso que no le he dedicado mucho tiempo a lo ofrecido por Fontconfig, pero al menos esto son extractos de lo que me ha funcionado para tener unas fuentes tipográficas decentes en mi escritorio:

Configuración básica para mejorar el aspecto visual de las fuentes tipográficas:

  <match target="font">
      <edit mode="assign" name="hinting" >
          <bool>true</bool>
      </edit>
      <edit mode="assign" name="autohint" >
          <bool>false</bool>
      </edit>
      <edit mode="assign" name="hintstyle" >
          <const>hintfull</const>
      </edit>
      <edit mode="assign" name="rgba" >
          <const>rgb</const>
      </edit>
      <edit mode="assign" name="antialias" >
          <bool>true</bool>
      </edit>
      <edit mode="assign" name="lcdfilter">
          <const>lcddefault</const>
      </edit>
      <edit mode="append" name="embeddedbitmap">
        <bool>false</bool>
      </edit>
  </match>

Los nombres de las fuentes tipográficas más comunes y las fuentes tipográficas (archivos TTF u OTF) que las remplazarán:

  <alias>
    <family>serif</family>
    <prefer><family>DejaVu Serif</family></prefer>
  </alias>
  <alias>
    <family>sans-serif</family>
    <prefer><family>DejaVu Sans</family></prefer>
  </alias>
  <alias>
    <family>sans</family>
    <prefer><family>DejaVu Sans</family></prefer>
  </alias>
  <alias>
    <family>monospace</family>
    <prefer><family>Hasklug Nerd Font Mono</family></prefer>
  </alias>

Sustitución de una fuente tipográfica por otra:

  <!-- Sustituir Arial por DejaVu Sans -->
  <match>
    <test name="family"><string>Arial</string></test>
    <edit name="family" mode="assign" binding="strong">
      <string>DejaVu Sans</string>
    </edit>
  </match>
  <!-- Sustituir Courier por Hasklug Nerd Font Mono -->
  <match>
    <test name="family"><string>Courier</string></test>
    <edit name="family" mode="assign" binding="strong">
      <string>Hasklug Nerd Font Mono</string>
    </edit>
  </match>
  <!-- Sustituir JetBrains Mono por Hasklug Nerd Font Mono -->
  <match>
    <test name="family"><string>JetBrains Mono</string></test>
    <edit name="family" mode="assign" binding="strong">
      <string>Hasklug Nerd Font Mono</string>
    </edit>
  </match>

Los dos últimos puntos permiten que, sin importar el programa, cuando uno use la fuente monospace, Courier o JetBrains Mono realmente se haga uso de Hasklug Nerd Font Mono.

Fuentes🔗