mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-12-25 23:23:07 +00:00
993deed7ab
With previous patch, we no longer load non-versioned fonts.conf file to avoid incompatibilities but this also means fontconfig will not load system-wide installed fonts on non-NixOS systems. As a compromise, let's hardcode the FHS font paths to the built-in config so that the system fonts work there. Unlike with the system config we do not need to worry about compatibility as incompatible font files will be simply ignored. Of course there will still be disparity if the system install fonts to some other location than these two but I am afraid this is the best we can do. See https://github.com/NixOS/nixpkgs/pull/73795#issuecomment-635771967 for discussion.
68 lines
2.2 KiB
XML
68 lines
2.2 KiB
XML
<?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="fonts.dtd" />
|
|
|
|
<xsl:param name="fontDirectories" />
|
|
<xsl:param name="fontconfig" />
|
|
<xsl:param name="fontconfigConfigVersion" />
|
|
|
|
<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>
|
|
|
|
<!-- versioned system-wide config -->
|
|
<include ignore_missing="yes">/etc/fonts/<xsl:value-of select="$fontconfigConfigVersion" />/conf.d</include>
|
|
|
|
<!-- upstream config -->
|
|
<include><xsl:value-of select="$fontconfig" />/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>
|