Lokasi font truetype

19

Saya ingin membuat skrip kecil yang menginstal beberapa font truetype pada sistem pengguna. Di mesin Ubuntu saya font truetype terletak di /usr/share/fonts/truetype. Namun, saya tidak yakin apakah lokasi ini sama untuk semua mesin. Apakah ada cara untuk mengetahui di mana font truetypes disimpan pada sistem Linux?

Pembaruan
Setelah beberapa penelitian saya menemukan bahwa path usr/share/fonts/truetypeditentukan dalam file XML /etc/fonts/fonts.conf. Ini file XML, jadi saya bisa menggunakan XPath untuk mendapatkan dir:

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

Namun saya tidak tahu apakah file ini akan ada di semua (atau sebagian besar) sistem Linux.

StackedCrooked
sumber

Jawaban:

20

Setiap font yang terletak di bawah subdirektori /usr/share/fontsdan ~/.fontsdipindai dan ditambahkan ke koleksi yang dapat Anda gunakan. Jadi selama font Anda berada di dalam salah satu dari dua direktori itu terletak benar, lokasi itu sama untuk hampir setiap distro linux utama.

Memperbarui:

Ngomong-ngomong, saya dapat mengkonfirmasi bahwa fonts.conffile tersebut ada di Fedora dan Ubuntu (dan turunannya: Xubuntu, Lubuntu, Linux Mint, Cinnammon, Peppermint OS, Fedora dan semua putarannya, untuk menyebutkan beberapa).

arielnmz
sumber
Lalu, mengapa saya memiliki font di Firefoxdan gnome-font-vieweryang tidak ada di lokasi tersebut ( /usr/share/fontsdan ~/.fonts)? Saya menggunakan Fedora 28
Akuntan
4

Di Fedora jalur foldernya adalah /home/{user}/.local/share/fonts

Anda dapat menyalin / menempel file font di sini.

AliMo
sumber
0

Mungkin Anda bisa mempertimbangkan untuk membuat paket dengan font Anda. Ini sedikit kerja membuat file deskripsi paket, dan aturan pembuatan. Tetapi Anda mendapatkan kemampuan untuk memperbarui dan menghapus instalasi secara gratis. Untuk Ubuntu, Anda harus membuat file deb.

Didier Trosset
sumber
0

Semua distribusi berbeda, Anda lebih baik untuk mengatur jalur default dan membiarkan pengguna memilih antara yang standar dan yang kustom.

Edit:

Menurut pendapat saya, Anda memiliki tiga solusi karena tidak ada variabel lingkungan atau fungsi untuk itu.

  1. Tetapkan jalur default dan biarkan pengguna memilih antara jalur default dan jalur kustom.
  2. Seperti kata dtrosset, Anda dapat membuat paket dengan font Anda untuk distribusi yang berbeda.
  3. Anda dapat menggunakan if / elif / else dan menguji -e untuk menentukan apakah ada jalur server font yang berbeda. Jika tidak ada, tunjukkan jalur default dan biarkan pengguna memilih antara itu dan jalur kustom.

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 Itu hanya pendapat saya ...

geek1983
sumber
-1 Retas. Ini bukan solusi dan itu hanya akan menyebabkan celaka bagi pengembang, StackedCrooked, dalam hal ini karena kami tidak dapat bergantung pada setiap pengguna mengetahui di mana file ttf mereka. Jika bahkan pengembang tidak tahu di mana file-file itu, bagaimana kita bisa mengharapkan pengguna untuk tahu?
Nitrodist