Emplacement des polices TrueType

19

Je voudrais créer un petit script qui installe quelques polices TrueType sur le système de l'utilisateur. Sur ma machine Ubuntu, les polices TrueType sont situées à /usr/share/fonts/truetype. Cependant, je ne sais pas si cet emplacement est le même sur toutes les machines. Existe-t-il un moyen de savoir où les polices Truetypes sont stockées sur un système Linux?

Mise à jour
Après quelques recherches, j'ai trouvé que le chemin usr/share/fonts/truetypeest spécifié dans le fichier XML /etc/fonts/fonts.conf. C'est un fichier XML, donc je peux utiliser XPath pour obtenir le répertoire:

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

Je ne sais pas cependant si ce fichier existera sur tous (ou la plupart) des systèmes Linux.

StackedCrooked
la source
Voir également la fc-cache(1)page de manuel , qui vous permet d'ajouter de nouvelles polices au système.
jww

Réponses:

20

Chaque police qui se trouve dans un sous-répertoire de /usr/share/fontset qui ~/.fontsest numérisée et ajoutée à la collection que vous pouvez utiliser. Donc, tant que votre police se trouve dans l'un de ces deux répertoires, elle est correctement localisée, cet emplacement est le même pour presque toutes les principales distributions Linux.

Mise à jour:

Par ailleurs, je peux confirmer que le fonts.conffichier est présent à la fois sur Fedora et Ubuntu (et leurs dérivés: Xubuntu, Lubuntu, Linux Mint, Cinnammon, Peppermint OS, Fedora et tous ses spins, pour n'en mentionner que certains).

arielnmz
la source
1
Alors, pourquoi ai-je des polices Firefoxet gnome-font-viewerqui n'existent pas dans ces emplacements ( /usr/share/fontset ~/.fonts)? J'utilise Fedora 28
Accountant le
Vous pourriez également vouloir vérifier en FONTCONFIG_PATHpremier. FONTCONFIG_PATHest utilisé pour remplacer le répertoire de configuration par défaut.
jww
4

Dans Fedora, le chemin du dossier est /home/{user}/.local/share/fonts

vous pouvez copier / coller des fichiers de police ici.

AliMo
la source
1

Toutes les distributions sont différentes, il vaut mieux définir un chemin par défaut et laisser l'utilisateur choisir entre le chemin par défaut et le chemin personnalisé.

Éditer:

À mon avis, vous avez trois solutions car il n'y a pas de variable d'environnement ou de fonction pour cela.

  1. Définissez un chemin par défaut et laissez l'utilisateur choisir entre le chemin par défaut et le chemin personnalisé.
  2. Comme l'a dit dtrosset, vous pouvez créer des packages avec vos polices pour les différentes distributions.
  3. Vous pouvez utiliser if / elif / else et tester -e pour déterminer si les différents chemins d'accès au serveur de polices existent. S'il n'y en a pas, affichez le chemin par défaut et laissez l'utilisateur choisir entre celui-ci et un chemin personnalisé.

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

PS Ce n'est que mon opinion ...

geek1983
la source
-1 Hack. Ce n'est pas une solution et cela ne fera que malheur au développeur, StackedCrooked, dans ce cas car nous ne pouvons pas dépendre de chaque utilisateur sachant où se trouvent leurs fichiers ttf. Si même le développeur ne sait même pas où se trouvent les fichiers, comment pouvons-nous nous attendre à ce qu'un utilisateur sache?
Nitrodist
Vous pourriez également vouloir vérifier en FONTCONFIG_PATHpremier. FONTCONFIG_PATHest utilisé pour remplacer le répertoire de configuration par défaut.
jww
0

Vous pourriez peut-être envisager de créer un package avec vos polices. C'est un peu de travail de créer les fichiers de description de package et les règles de création. Mais vous avez la possibilité de mettre à jour et de désinstaller gratuitement. Pour Ubuntu, vous devez créer des fichiers .deb.

Didier Trosset
la source