diff options
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/fontconfig/make-fonts-conf.xsl')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/fontconfig/make-fonts-conf.xsl | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/fontconfig/make-fonts-conf.xsl b/nixpkgs/pkgs/development/libraries/fontconfig/make-fonts-conf.xsl new file mode 100644 index 000000000000..ed51b62a1d08 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/fontconfig/make-fonts-conf.xsl @@ -0,0 +1,62 @@ +<?xml version="1.0"?> + +<!-- + This script copies the original fonts.conf from the fontconfig + distribution, but replaces all <dir> entries with the directories + specified in the $fontDirectories parameter. +--> + +<xsl:stylesheet version="1.0" + xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:str="http://exslt.org/strings" + extension-element-prefixes="str" + > + + <xsl:output method='xml' encoding="UTF-8" doctype-system="urn:fontconfig:fonts.dtd" /> + + <xsl:param name="fontDirectories" /> + + <xsl:template match="/fontconfig"> + + <fontconfig> + <xsl:apply-templates select="child::node()[name() != 'dir' and name() != 'cachedir' and name() != 'include']" /> + + <!-- the first cachedir will be used to store the cache --> + <cachedir prefix="xdg">fontconfig</cachedir> + <!-- /var/cache/fontconfig is useful for non-nixos systems --> + <cachedir>/var/cache/fontconfig</cachedir> + + <!-- system-wide config --> + <include ignore_missing="yes">/etc/fonts/conf.d</include> + + <dir prefix="xdg">fonts</dir> + <xsl:for-each select="str:tokenize($fontDirectories)"> + <dir><xsl:value-of select="." /></dir> + <xsl:text>
</xsl:text> + </xsl:for-each> + + <!-- nix user profile --> + <dir>~/.nix-profile/lib/X11/fonts</dir> + <dir>~/.nix-profile/share/fonts</dir> + + <!-- FHS paths for non-NixOS platforms --> + <dir>/usr/share/fonts</dir> + <dir>/usr/local/share/fonts</dir> + + <!-- nix default profile --> + <dir>/nix/var/nix/profiles/default/lib/X11/fonts</dir> + <dir>/nix/var/nix/profiles/default/share/fonts</dir> + + </fontconfig> + + </xsl:template> + + + <!-- New fontconfig >=2.11 doesn't like xml:space added by xsl:copy-of --> + <xsl:template match="node()|@*"> + <xsl:copy> + <xsl:apply-templates select="node()|@*[name() != 'xml:space']"/> + </xsl:copy> + </xsl:template> + +</xsl:stylesheet> |