Skip to content

Instantly share code, notes, and snippets.

@wastee
Created July 22, 2025 20:56
Show Gist options
  • Select an option

  • Save wastee/09d935c40387079bd27a03e196e7e62a to your computer and use it in GitHub Desktop.

Select an option

Save wastee/09d935c40387079bd27a03e196e7e62a to your computer and use it in GitHub Desktop.
Example fontconfg file
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'urn:fontconfig:fonts.dtd'>
<fontconfig>
<!-- Default serif font -->
<alias binding="strong">
<family>serif</family>
<prefer>
<family>Roboto Slab</family>
</prefer>
</alias>
<!-- Default sans-serif font -->
<alias binding="strong">
<family>sans-serif</family>
<prefer>
<family>Greycliff CF</family>
<family>Atkinson Hyperlegible</family>
</prefer>
</alias>
<!-- Default monospace font -->
<alias binding="strong">
<family>monospace</family>
<prefer>
<family>Cartograph CF</family>
</prefer>
</alias>
<!-- Default system-ui font -->
<alias binding="strong">
<family>system-ui</family>
<prefer>
<family>Lato</family>
</prefer>
</alias>
<!-- Serif CJK -->
<!-- Default serif when the "lang" attribute is not given -->
<!-- You can change this font to the language variant you want -->
<match target="pattern">
<test name="family">
<string>serif</string>
</test>
<edit binding="strong" mode="append" name="family">
<string>Noto Serif CJK SC</string>
</edit>
</match>
<!-- Japanese -->
<!-- "lang=ja" or "lang=ja-*" -->
<match target="pattern">
<test compare="contains" name="lang">
<string>ja</string>
</test>
<test name="family">
<string>serif</string>
</test>
<edit binding="strong" mode="append" name="family">
<string>Noto Serif CJK JP</string>
</edit>
</match>
<!-- Korean -->
<!-- "lang=ko" or "lang=ko-*" -->
<match target="pattern">
<test compare="contains" name="lang">
<string>ko</string>
</test>
<test name="family">
<string>serif</string>
</test>
<edit binding="strong" mode="append" name="family">
<string>Noto Serif CJK KR</string>
</edit>
</match>
<!-- Chinese -->
<!-- "lang=zh" or "lang=zh-*" -->
<match target="pattern">
<test compare="contains" name="lang">
<string>zh</string>
</test>
<test name="family">
<string>serif</string>
</test>
<edit binding="strong" mode="append" name="family">
<string>Noto Serif CJK SC</string>
</edit>
</match>
<!-- "lang=zh-hans" or "lang=zh-hans-*" -->
<match target="pattern">
<test compare="contains" name="lang">
<string>zh-hans</string>
</test>
<test name="family">
<string>serif</string>
</test>
<edit binding="strong" mode="append" name="family">
<string>Noto Serif CJK SC</string>
</edit>
</match>
<!-- "lang=zh-hant" or "lang=zh-hant-*" -->
<match target="pattern">
<test compare="contains" name="lang">
<string>zh-hant</string>
</test>
<test name="family">
<string>serif</string>
</test>
<edit binding="strong" mode="append" name="family">
<string>Noto Serif CJK TC</string>
</edit>
</match>
<!-- "lang=zh-hant-hk" or "lang=zh-hant-hk-*" -->
<match target="pattern">
<test compare="contains" name="lang">
<string>zh-hant-hk</string>
</test>
<test name="family">
<string>serif</string>
</test>
<edit binding="strong" mode="append" name="family">
<string>Noto Serif CJK HK</string>
</edit>
</match>
<!-- Compatible -->
<!-- "lang=zh-cn" or "lang=zh-cn-*" -->
<match target="pattern">
<test compare="contains" name="lang">
<string>zh-cn</string>
</test>
<test name="family">
<string>serif</string>
</test>
<edit binding="strong" mode="append" name="family">
<string>Noto Serif CJK SC</string>
</edit>
</match>
<!-- "lang=zh-tw" or "lang=zh-tw-*" -->
<match target="pattern">
<test compare="contains" name="lang">
<string>zh-tw</string>
</test>
<test name="family">
<string>serif</string>
</test>
<edit binding="strong" mode="append" name="family">
<string>Noto Serif CJK TC</string>
</edit>
</match>
<!-- "lang=zh-hk" or "lang=zh-hk-*" -->
<match target="pattern">
<test compare="contains" name="lang">
<string>zh-hk</string>
</test>
<test name="family">
<string>serif</string>
</test>
<edit binding="strong" mode="append" name="family">
<string>Noto Serif CJK HK</string>
</edit>
</match>
<!-- Sans CJK -->
<!-- Default sans-serif when the "lang" attribute is not given -->
<!-- You can change this font to the language variant you want -->
<match target="pattern">
<test name="family">
<string>sans-serif</string>
</test>
<edit binding="strong" mode="append" name="family">
<string>MiSans VF</string>
</edit>
</match>
<!-- Japanese -->
<!-- "lang=ja" or "lang=ja-*" -->
<match target="pattern">
<test compare="contains" name="lang">
<string>ja</string>
</test>
<test name="family">
<string>sans-serif</string>
</test>
<edit binding="strong" mode="append" name="family">
<string>MiSans VF</string>
</edit>
</match>
<!-- Korean -->
<!-- "lang=ko" or "lang=ko-*" -->
<match target="pattern">
<test compare="contains" name="lang">
<string>ko</string>
</test>
<test name="family">
<string>sans-serif</string>
</test>
<edit binding="strong" mode="append" name="family">
<string>MiSans VF</string>
</edit>
</match>
<!-- Chinese -->
<!-- "lang=zh" or "lang=zh-*" -->
<match target="pattern">
<test compare="contains" name="lang">
<string>zh</string>
</test>
<test name="family">
<string>sans-serif</string>
</test>
<edit binding="strong" mode="append" name="family">
<string>MiSans VF</string>
</edit>
</match>
<!-- "lang=zh-hans" or "lang=zh-hans-*" -->
<match target="pattern">
<test compare="contains" name="lang">
<string>zh-hans</string>
</test>
<test name="family">
<string>sans-serif</string>
</test>
<edit binding="strong" mode="append" name="family">
<string>MiSans VF</string>
</edit>
</match>
<!-- "lang=zh-hant" or "lang=zh-hant-*" -->
<match target="pattern">
<test compare="contains" name="lang">
<string>zh-hant</string>
</test>
<test name="family">
<string>sans-serif</string>
</test>
<edit binding="strong" mode="append" name="family">
<string>MiSans VF</string>
</edit>
</match>
<!-- "lang=zh-hant-hk" or "lang=zh-hant-hk-*" -->
<match target="pattern">
<test compare="contains" name="lang">
<string>zh-hant-hk</string>
</test>
<test name="family">
<string>sans-serif</string>
</test>
<edit binding="strong" mode="append" name="family">
<string>MiSans VF</string>
</edit>
</match>
<!-- Compatible -->
<!-- "lang=zh-cn" or "lang=zh-cn-*" -->
<match target="pattern">
<test compare="contains" name="lang">
<string>zh-cn</string>
</test>
<test name="family">
<string>sans-serif</string>
</test>
<edit binding="strong" mode="append" name="family">
<string>MiSans VF</string>
</edit>
</match>
<!-- "lang=zh-tw" or "lang=zh-tw-*" -->
<match target="pattern">
<test compare="contains" name="lang">
<string>zh-tw</string>
</test>
<test name="family">
<string>sans-serif</string>
</test>
<edit binding="strong" mode="append" name="family">
<string>MiSans VF</string>
</edit>
</match>
<!-- "lang=zh-hk" or "lang=zh-hk-*" -->
<match target="pattern">
<test compare="contains" name="lang">
<string>zh-hk</string>
</test>
<test name="family">
<string>sans-serif</string>
</test>
<edit binding="strong" mode="append" name="family">
<string>MiSans VF</string>
</edit>
</match>
<!-- Monospace CJK -->
<!-- Default monospace when the "lang" attribute is not given -->
<!-- You can change this font to the language variant you want -->
<match target="pattern">
<test name="family">
<string>monospace</string>
</test>
<edit binding="strong" mode="append" name="family">
<string>MiSans VF</string>
</edit>
</match>
<!-- Japanese -->
<!-- "lang=ja" or "lang=ja-*" -->
<match target="pattern">
<test compare="contains" name="lang">
<string>ja</string>
</test>
<test name="family">
<string>monospace</string>
</test>
<edit binding="strong" mode="append" name="family">
<string>MiSans VF</string>
</edit>
</match>
<!-- Korean -->
<!-- "lang=ko" or "lang=ko-*" -->
<match target="pattern">
<test compare="contains" name="lang">
<string>ko</string>
</test>
<test name="family">
<string>monospace</string>
</test>
<edit binding="strong" mode="append" name="family">
<string>MiSans VF</string>
</edit>
</match>
<!-- Chinese -->
<!-- "lang=zh" or "lang=zh-*" -->
<match target="pattern">
<test compare="contains" name="lang">
<string>zh</string>
</test>
<test name="family">
<string>monospace</string>
</test>
<edit binding="strong" mode="append" name="family">
<string>MiSans VF</string>
</edit>
</match>
<!-- "lang=zh-hans" or "lang=zh-hans-*" -->
<match target="pattern">
<test compare="contains" name="lang">
<string>zh-hans</string>
</test>
<test name="family">
<string>monospace</string>
</test>
<edit binding="strong" mode="append" name="family">
<string>MiSans VF</string>
</edit>
</match>
<!-- "lang=zh-hant" or "lang=zh-hant-*" -->
<match target="pattern">
<test compare="contains" name="lang">
<string>zh-hant</string>
</test>
<test name="family">
<string>monospace</string>
</test>
<edit binding="strong" mode="append" name="family">
<string>MiSans VF</string>
</edit>
</match>
<!-- "lang=zh-hant-hk" or "lang=zh-hant-hk-*" -->
<match target="pattern">
<test compare="contains" name="lang">
<string>zh-hant-hk</string>
</test>
<test name="family">
<string>monospace</string>
</test>
<edit binding="strong" mode="append" name="family">
<string>MiSans VF</string>
</edit>
</match>
<!-- Compatible -->
<!-- "lang=zh-cn" or "lang=zh-cn-*" -->
<match target="pattern">
<test compare="contains" name="lang">
<string>zh-cn</string>
</test>
<test name="family">
<string>monospace</string>
</test>
<edit binding="strong" mode="append" name="family">
<string>MiSans VF</string>
</edit>
</match>
<!-- "lang=zh-tw" or "lang=zh-tw-*" -->
<match target="pattern">
<test compare="contains" name="lang">
<string>zh-tw</string>
</test>
<test name="family">
<string>monospace</string>
</test>
<edit binding="strong" mode="append" name="family">
<string>MiSans VF</string>
</edit>
</match>
<!-- "lang=zh-hk" or "lang=zh-hk-*" -->
<match target="pattern">
<test compare="contains" name="lang">
<string>zh-hk</string>
</test>
<test name="family">
<string>monospace</string>
</test>
<edit binding="strong" mode="append" name="family">
<string>MiSans VF</string>
</edit>
</match>
<!-- System UI CJK -->
<!-- Default system-ui when the "lang" attribute is not given -->
<!-- You can change this font to the language variant you want -->
<match target="pattern">
<test name="family">
<string>system-ui</string>
</test>
<edit binding="strong" mode="append" name="family">
<string>LXGW WenKai</string>
</edit>
</match>
<!-- Japanese -->
<!-- "lang=ja" or "lang=ja-*" -->
<match target="pattern">
<test compare="contains" name="lang">
<string>ja</string>
</test>
<test name="family">
<string>system-ui</string>
</test>
<edit binding="strong" mode="append" name="family">
<string>LXGW WenKai</string>
</edit>
</match>
<!-- Korean -->
<!-- "lang=ko" or "lang=ko-*" -->
<match target="pattern">
<test compare="contains" name="lang">
<string>ko</string>
</test>
<test name="family">
<string>system-ui</string>
</test>
<edit binding="strong" mode="append" name="family">
<string>LXGW WenKai</string>
</edit>
</match>
<!-- Chinese -->
<!-- "lang=zh" or "lang=zh-*" -->
<match target="pattern">
<test compare="contains" name="lang">
<string>zh</string>
</test>
<test name="family">
<string>system-ui</string>
</test>
<edit binding="strong" mode="append" name="family">
<string>LXGW WenKai</string>
</edit>
</match>
<!-- "lang=zh-hans" or "lang=zh-hans-*" -->
<match target="pattern">
<test compare="contains" name="lang">
<string>zh-hans</string>
</test>
<test name="family">
<string>system-ui</string>
</test>
<edit binding="strong" mode="append" name="family">
<string>LXGW WenKai</string>
</edit>
</match>
<!-- "lang=zh-hant" or "lang=zh-hant-*" -->
<match target="pattern">
<test compare="contains" name="lang">
<string>zh-hant</string>
</test>
<test name="family">
<string>system-ui</string>
</test>
<edit binding="strong" mode="append" name="family">
<string>LXGW WenKai</string>
</edit>
</match>
<!-- "lang=zh-hant-hk" or "lang=zh-hant-hk-*" -->
<match target="pattern">
<test compare="contains" name="lang">
<string>zh-hant-hk</string>
</test>
<test name="family">
<string>system-ui</string>
</test>
<edit binding="strong" mode="append" name="family">
<string>LXGW WenKai</string>
</edit>
</match>
<!-- Compatible -->
<!-- "lang=zh-cn" or "lang=zh-cn-*" -->
<match target="pattern">
<test compare="contains" name="lang">
<string>zh-cn</string>
</test>
<test name="family">
<string>system-ui</string>
</test>
<edit binding="strong" mode="append" name="family">
<string>LXGW WenKai</string>
</edit>
</match>
<!-- "lang=zh-tw" or "lang=zh-tw-*" -->
<match target="pattern">
<test compare="contains" name="lang">
<string>zh-tw</string>
</test>
<test name="family">
<string>system-ui</string>
</test>
<edit binding="strong" mode="append" name="family">
<string>LXGW WenKai</string>
</edit>
</match>
<!-- "lang=zh-hk" or "lang=zh-hk-*" -->
<match target="pattern">
<test compare="contains" name="lang">
<string>zh-hk</string>
</test>
<test name="family">
<string>system-ui</string>
</test>
<edit binding="strong" mode="append" name="family">
<string>LXGW WenKai</string>
</edit>
</match>
<!-- REAPER fonts patch -->
<match target="pattern">
<test name="prgname">
<string>reaper</string>
</test>
<edit mode="assign" name="family">
<string>MiSans VF</string>
</edit>
</match>
<dir>~/.fonts</dir>
</fontconfig>
@wastee
Copy link
Author

wastee commented Jul 22, 2025

This file is in .config/fontconfig.
The main content is line 525.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment