Ubicación de las fuentes truetype

19

Me gustaría crear un pequeño script que instale algunas fuentes TrueType en el sistema del usuario. En mi máquina Ubuntu, las fuentes truetype se encuentran en /usr/share/fonts/truetype. Sin embargo, no estoy seguro de si esta ubicación es la misma en todas las máquinas. ¿Hay alguna manera de averiguar dónde se almacenan las fuentes truetypes en cualquier sistema Linux?

Actualización
Después de algunas investigaciones, descubrí que la ruta usr/share/fonts/truetypese especifica en el archivo XML /etc/fonts/fonts.conf. Es un archivo XML, así que puedo usar XPath para obtener el directorio:

xpath -q -e 'fontconfig/dir[1]/text()[1]' /etc/fonts/fonts.conf

Sin embargo, no sé si este archivo existirá en todos (o la mayoría) de los sistemas Linux.

Apilado
fuente

Respuestas:

20

Cada fuente que se encuentra debajo de cualquier subdirectorio de /usr/share/fontsy ~/.fontsse escanea y se agrega a la colección que puede utilizar. Por lo tanto, siempre que su fuente esté dentro de uno de esos dos directorios, está ubicada correctamente, esa ubicación es la misma para casi todas las principales distribuciones de Linux.

Actualizar:

Por cierto, puedo confirmar que el fonts.confarchivo está presente tanto en Fedora como en Ubuntu (y sus derivados: Xubuntu, Lubuntu, Linux Mint, Cinnammon, Peppermint OS, Fedora y todos sus giros, por mencionar algunos).

arielnmz
fuente
Entonces, ¿por qué tengo fuentes Firefoxy gnome-font-viewercuáles no existen en esas ubicaciones ( /usr/share/fontsy ~/.fonts)? Yo uso Fedora 28
Contador م
4

En Fedora, la ruta de la carpeta es /home/{user}/.local/share/fonts

Puede copiar / pegar archivos de fuentes aquí.

AliMo
fuente
0

Tal vez podría considerar crear un paquete con sus fuentes. Es un poco trabajo crear los archivos de descripción del paquete y las reglas de creación. Pero obtienes la capacidad de actualizar y desinstalar gratis. Para Ubuntu, debe crear archivos .deb.

Didier Trosset
fuente
0

Todas las distribuciones son diferentes, es mejor establecer una ruta predeterminada y dejar que el usuario seleccione entre la predeterminada y una personalizada.

Editar:

En mi opinión, tiene tres soluciones porque no hay una variable de entorno o función para eso.

  1. Establezca una ruta predeterminada y permita que el usuario seleccione entre la predeterminada y una personalizada.
  2. Como dijo dtrosset, puede crear paquetes con sus fuentes para las diferentes distribuciones.
  3. Puede usar if / elif / else y test -e para determinar si existen las diferentes rutas del servidor de fuentes. Si no existe nadie, muestre la ruta predeterminada y permita que el usuario seleccione entre ella y una personalizada.

Ex:

DEFAULT="$home/.fonts/"
UBUNTU_XFSTT="/usr/share/fonts/truetype/"
RHL52_XFS="/usr/X11R6/lib/X11/fonts/ttfonts/"
RHL6_XFSTT="/usr/X11R6/lib/X11/fonts/"
DEBIAN_XFSTT="/usr/share/fonts/truetype/"

#Test if directory exist
if test -e ${UBUNTU_XFSTT} ; then
    echo ${UBUNTU_XFSTT}
elif test -e ${RHL52_XFS} ; then
    echo ${RHL52_XFS}
elif test -e ${RHL6_XFSTT} ; then
    echo ${RHL6_XFSTT}
elif test -e ${DEBIAN_XFSTT} ; then
    echo ${DEBIAN_XFSTT}
else
    echo ${DEFAULT}
fi

PD: Esa es solo MI opinión ...

geek1983
fuente
-1 Hack. Esta no es una solución y solo causará problemas para el desarrollador, StackedCrooked, en este caso, ya que no podemos depender de que cada usuario sepa dónde están sus archivos ttf. Si incluso el desarrollador ni siquiera sabe dónde están los archivos, ¿cómo se supone que esperamos que un usuario lo sepa?
Nitrodist 05 de