it-swarm-ja.com

TrueTypeフォントの場所

ユーザーのシステムにいくつかのTrueTypeフォントをインストールする小さなスクリプトを作成したいと思います。私のUbuntuマシンでは、TrueTypeフォントは/usr/share/fonts/truetypeにあります。ただし、この場所がすべてのマシンで同じかどうかはわかりません。 LinuxシステムでTrueTypeフォントが保存されている場所を確認する方法はありますか?

更新
調査の結果、パスusr/share/fonts/truetypeがXMLファイル/etc/fonts/fonts.confで指定されていることがわかりました。これはXMLファイルなので、XPathを使用してディレクトリを取得できます。

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

ただし、このファイルがすべて(またはほとんど)のLinuxシステムに存在するかどうかはわかりません。

21
StackedCrooked

/usr/share/fontsおよび~/.fontsのサブディレクトリの下にあるすべてのフォントがスキャンされ、使用可能なコレクションに追加されます。したがって、フォントがこれらの2つのディレクトリのいずれかにある限り、フォントは正しい場所にあり、その場所はほとんどすべての主要なLinuxディストリビューションで同じです。

更新:

ちなみに、fonts.confファイルがFedoraとUbuntuの両方に存在することを確認できます(それらの派生物:Xubuntu、Lubuntu、Linux Mint、Cinnammon、Peppermint OS、Fedoraとそのすべてのスピン。

22
arielnmz

Fedoraでは、フォルダーパスは/home/{user}/.local/share/fonts

ここでフォントファイルをコピーして貼り付けることができます。

4
AliMo

ディストリビューションはすべて異なります。デフォルトのパスを設定し、ユーザーにデフォルトのパスとカスタムのパスのどちらかを選択させることをお勧めします。

編集:

私の意見では、環境変数や関数がないため、3つの解決策があります。

  1. デフォルトパスを設定し、ユーザーにデフォルトパスとカスタムパスのどちらかを選択させます。
  2. Dtrossetが言ったように、さまざまなディストリビューション用のフォントを使用してパッケージを作成できます。
  3. If/Elif/elseおよびtest -eを使用して、異なるフォントサーバーパスが存在するかどうかを確認できます。存在しない場合は、デフォルトのパスを表示し、ユーザーにそれとカスタムパスのどちらかを選択させます。

例:

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

追伸それは私の意見です...

1
geek1983

多分あなたはあなたのフォントでパッケージを作成することを検討することができます。これは、パッケージ記述ファイルと作成ルールを作成する少しの作業です。しかし、無料でアップデートとアンインストールを行うことができます。 Ubuntuの場合、.debファイルを作成する必要があります。

0
Didier Trosset