Posizione dei caratteri TrueType


19

Vorrei creare un piccolo script che installa alcuni caratteri TrueType sul sistema dell'utente. Sulla mia macchina Ubuntu i caratteri TrueType si trovano in /usr/share/fonts/truetype. Tuttavia, non sono sicuro che questa posizione sia la stessa su tutte le macchine. C'è un modo per scoprire dove sono archiviati i font TrueType su qualsiasi sistema Linux?

Aggiornamento
Dopo alcune ricerche ho scoperto che il percorso usr/share/fonts/truetypeè specificato nel file XML /etc/fonts/fonts.conf. È un file XML, quindi posso usare XPath per ottenere la directory:

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

Non so comunque se questo file esisterà su tutti (o la maggior parte) dei sistemi Linux.

Risposte:


20

Ogni font che si trova in una sottodirectory di /usr/share/fontse ~/.fontsviene scansionato e aggiunto alla raccolta che è possibile utilizzare. Quindi, fintanto che il tuo font è all'interno di una di quelle due directory, si trova esattamente, quella posizione è la stessa per quasi tutte le principali distribuzioni di Linux.

Aggiornare:

A proposito, posso confermare che il fonts.conffile è presente sia su Fedora che su Ubuntu (e sui loro derivati: Xubuntu, Lubuntu, Linux Mint, Cinnammon, Peppermint OS, Fedora e tutti i suoi giri, per citarne alcuni).


Quindi, perché ho i caratteri Firefoxe gnome-font-viewerche non esistono in quelle posizioni ( /usr/share/fontse ~/.fonts)? Uso Fedora 28
Accountant م

4

In Fedora il percorso della cartella è /home/{user}/.local/share/fonts

puoi copiare / incollare i file dei font qui.


0

Forse potresti prendere in considerazione la creazione di un pacchetto con i tuoi caratteri. È un po 'complicato creare i file di descrizione del pacchetto e le regole di creazione. Ma ottieni la possibilità di aggiornare e disinstallare gratuitamente. Per Ubuntu, dovresti creare file .deb.


0

Tutte le distribuzioni sono diverse, è meglio impostare un percorso predefinito e consentire all'utente di selezionare tra quello predefinito e quello personalizzato.

Modificare:

A mio avviso, hai tre soluzioni perché non esiste una variabile d'ambiente o una funzione per questo.

  1. Imposta un percorso predefinito e consenti all'utente di selezionare tra quello predefinito e quello personalizzato.
  2. Come ha detto dtrosset, è possibile creare pacchetti con i propri caratteri per le diverse distribuzioni.
  3. Puoi usare if / elif / else e test -e per determinare se esistono i diversi percorsi del font server. Se non esiste nessuno, mostra il percorso predefinito e consenti all'utente di selezionare tra esso e uno personalizzato.

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 Questa è solo la MIA opinione ...


-1 Hack. Questa non è una soluzione e causerà guai solo allo sviluppatore, StackedCrooked, in questo caso poiché non possiamo dipendere da ogni utente che sappia dove sono i loro file ttf. Se anche lo sviluppatore non sa nemmeno dove siano i file, come possiamo aspettarci che un utente lo sappia?
Nitrodist
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.