OĂč sont stockĂ©es les polices de caractĂšres sous Linux Mint ?
Sous Linux, les polices sont stockées dans différents répertoires, les plus communs sont :
/usr/share/fonts
/usr/local/share/fonts
~/.fonts
Techniquement, vous pouvez mettre vos nouvelles polices dans nâimporte lequel de ces dossiers, on peut cependant affiner un peu cela en respectant les normes et les conventions.
Par exemple, sous Linux Mint, les polices True Type Format
sont classées un dossier spécifique :
/usr/share/fonts/truetype
et les polices pour lâutilisateur courant se trouve :
~/.local/share/fonts
Beaucoup de logiciels embarquent leurs propres polices, câest le cas de LibreOffice par exemple, les polices Ă©tant dessous /opt/libreoffice7.2/share/fonts
, mais ce qui nous intĂ©resse câest plutĂŽt les polices qui sont partagĂ©es :
Dessous /var/lib/flatpak/
il y a Ă©galement des polices, mais lĂ encore, elles sont rĂ©servĂ©es. Il sâagit des applications au format flatpak, de mĂȘme dessous /snap/
pour les applications au format snap.
Voici dâautres dossiers notables :
/var/lib/dpkg/alternatives
/etc/alternatives
OĂč mettre vos polices ?
Si vous utilisez lâoutil de gestion des polices de caractĂšres de Linux Mint, lorsque vous cliquez sur le bouton installer, il utilisera le dossier : ~/.fonts
Cependant, si vous souhaitez que vos polices soient accessibles à tous les utilisateurs, il est plus pertinent de les copier dessous : /usr/local/share/fonts
(ce qui nécessitera les droits administrateurs).
Comment rechercher tous les fichiers contenant une police de caractÚre ?
Pour les plus curieux dâentre vous, je vous propose de partir Ă lâexploration des polices de caractĂšres en dĂ©pliant le texte ci-dessousâŠ
-
Pour ceux qui souhaitent creuserâŠ
Pour trouver toutes les fonts, vous pouvez utiliser:
sudo find / -type f -iname '*.otf' -or -iname '*.ttf' 2>/dev/null
-o
ou-or
sont de synonymes pourfind
.Notez quâil existe dâautre type de ficher de police de caractĂšre, et certainement que votre systĂšme en supporte dâautre, vous adapterez a votre besoinâŠ
On utilise
sudo
pour pouvoir atteindre tous les fichiers du disque, on recherche Ă partir de la racine (/
), on se limite aux fichiers (-type f
) dont le nom fini par « .otf » (-iname '*.otf'
) ou (-or
) par « .ttf » (-iname '*.ttf'
) et on masque les erreurs (2>/dev/null
). Les erreurs Ă©tant dans ce cas normal,find
va se heurter Ă des fichiers appartenant au systĂšme quâil ne peut pas gĂ©rer.La liste risque dĂ©jĂ trĂšs longue et comme le but est de ne connaĂźtre que le dossier, on peut rĂ©duire considĂ©rablement les rĂ©sultats comme suit :
sudo find / -type f -iname '*.otf' -or -iname '*.ttf' -exec dirname {} \; 2>/dev/null | sort | uniq
Il est possible dâaccĂ©lĂ©rer un peu lâaffichage, en partant du principe que la sortie de la commande
find
sera déjà triée :sudo find / -type f -iname '*.otf' -or -iname '*.ttf' -exec dirname {} \; 2>/dev/null | uniq
Cette recherche risque dâĂȘtre lente, puisquâelle va examiner lâensemble du disque dur. Soit vous aller vous faire un cafĂ©, soit il faut essayer de limiter raisonnablement son pĂ©rimĂštre.
sudo find / -type d \( -path '/cdrom' \ -o -path '/lost+found' \ -o -path '/tmp' \ -o -path '/run' \ -o -path '/proc' \ -o -path '/media' \ -o -path '/usr/share/fonts' \ -o -path '/usr/local/share/fonts' \ -o -path '/var/lib/flatpak' \ -o -path '/mnt/data/home/claude/sources' \) \ -prune -or -type f -iname '*.otf' -or -iname '*.ttf' -exec dirname {} \; 2>/dev/null | uniq
Les dossiers exclus :
/cdrom
â A priori, on ne veut pas explorer un Ă©ventuel CD,/lost+found
â Dossier systĂšme sans intĂ©rĂȘt ici,/tmp
â Dossier temporaire, les police-de-caractĂšre Ă©ventuelles ne rĂ©sistent pas Ă un redĂ©marrage,/run
â Dossier systĂšme sans intĂ©rĂȘt ici,/proc
â Dossier systĂšme sans intĂ©rĂȘt ici,/media
â A priori, on ne veut pas rechercher sur dâĂ©ventuels points de montages,/usr/share/fonts
â On sait dĂ©jĂ quâil y a des fonts ici,/usr/local/share/fonts
â On sait dĂ©jĂ quâil y a des fonts ici,/var/lib/flatpak
â Les fonts prĂ©sentes dans ce dossier sont gĂ©rĂ©es par flatpak,/mnt/data/home/claude/sources
â Et vous pouvez ajouter dâĂ©ventuels dossiers persoâŠ
On peut vouloirs chercher des polices en double, je vous propose pour cela de faire quelque chose du type :
sudo find / -type d \( -path '/cdrom' \ -o -path '/lost+found' \ -o -path '/tmp' \ -o -path '/run' \ -o -path '/proc' \ -o -path '/media' \ -o -path '/mnt/data/home/claude/sources' \) \ -prune -or -type f -iname '*.otf' -or -iname '*.ttf' \ -exec sha512sum {} \; | sort >liste-police-de-caracteres.txt
Pour examiner le résultat, qui sera assez long à produire, je vous conseille de mettre le résultat dans un fichier (ici
liste-police-de-caracteres.txt
).Les fichiers ayant le mĂȘme code ont le mĂȘme contenu.
function show_duplicates { local -r file="$1" local last_key= local last_tail= local first_match='true' sort -t, -k1,1 "${file}" | while IFS=' ' read key tail ; do if [ "${key}" = "${last_key}" ] ; then if [ "${first_match}" = 'true' ] ; then echo "${last_key} ${last_tail}" first_match='false' fi echo "${key} ${tail}" else first_match='true' fi last_key="${key}" last_tail="${tail}" done } show_duplicates 'liste-police-de-caracteres.txt' >'liste-police-de-caracteres-en-double.txt'
Une solution basée sur le format JSON me semble plus exploitable, mais je laisse le code intermédiaire à des fins de documentation.
function show_duplicates_json { local -r file="$1" local last_key= local last_tail= local first_match='true' local json='{}' while IFS=' ' read key tail ; do if [ "${key}" = "${last_key}" ] ; then if [ "${first_match}" = 'true' ] ; then echo "${last_key} ${last_tail}" >&2 json="$( jq -c --arg file "${last_tail}" ".[\"$last_key\"] |= .+ [ \$file ]" <<<"${json}" )" first_match='false' fi echo "${key} ${tail}" >&2 json="$( jq -c --arg file "${tail}" ".[\"$key\"] |= .+ [ \$file ]" <<<"${json}" )" else first_match='true' fi last_key="${key}" last_tail="${tail}" done < <( sort -t, -k1,1 "${file}" ) jq . <<<"${json}" } show_duplicates_json 'liste-police-de-caracteres.txt' >'liste-police-de-caracteres-en-double.json'
Le contenu de ce fichier risque de vous faire peur. Vous constaterez qu'il y a beaucoup de polices de caractĂšres en double sur machineâŠ
Références
- Installing Additional Fonts in Mint (For Ultimate Newbies)
- Adding New Fonts to Your System
- Where are fonts stored in Linux Mint?
- How do I print all lines of a file with duplicate values in a certain column
኿