flake/users/guanranwang/home-manager/resources/dotfiles/config/fontconfig/fonts.conf
2023-11-05 17:21:37 +08:00

329 lines
14 KiB
XML

<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
<its:rules version="1.0" xmlns:its="http://www.w3.org/2005/11/its">
<its:translateRule selector="/fontconfig/*[not(self::description)]" translate="no"/>
</its:rules>
<description>trash Font Config 2.0</description>
<!--
(default = true) Use antialias
Disable embedded bitmap fonts
(default = false) Disable autohint
(default = true) Hinting
(default = hintslight) Hint style
RGBA
LCD filter
Set DPI
-->
<match target="font">
<edit name="antialias" mode="assign"> <bool>true</bool></edit>
<edit name="embeddedbitmap" mode="assign"> <bool>false</bool></edit>
<edit name="autohint" mode="assign"> <bool>false</bool></edit>
<edit name="hinting" mode="assign"> <bool>true</bool></edit>
<edit name="hintstyle" mode="assign"> <const>hintslight</const></edit>
<edit name="rgba" mode="assign"> <const>rgb</const></edit>
<edit name="lcdfilter" mode="assign"> <const>lcddefault</const></edit>
<edit name="dpi" mode="assign"> <double>96</double></edit>
</match>
<!-- Latin font -->
<match>
<test name="family" qual="any"><string>serif</string></test>
<edit name="family" binding="strong" mode="prepend"><string>Noto Serif</string></edit>
</match>
<match target="pattern">
<test name="family" qual="any"><string>sans-serif</string></test>
<edit name="family" binding="strong" mode="prepend"><string>Inter</string></edit>
</match>
<match target="pattern">
<test name="family" qual="any"><string>monospace</string></test>
<edit name="family" binding="strong" mode="prepend"><string>JetBrainsMono Nerd Font</string></edit>
</match>
<!-- Chinese -->
<!-- "lang=zh" or "lang=zh-*" -->
<!-- Chinese, no variants specified (Simplefied, as it is the modern standard) -->
<match>
<test name="lang" compare="contains"><string>zh</string></test>
<test name="family"><string>serif</string></test>
<edit name="family" mode="prepend"><string>Noto Serif CJK SC</string></edit>
</match>
<match>
<test name="lang" compare="contains"><string>zh</string></test>
<test name="family"><string>sans-serif</string></test>
<edit name="family" mode="prepend"><string>Noto Sans CJK SC</string></edit>
</match>
<match>
<test name="lang" compare="contains"><string>zh</string></test>
<test name="family"><string>monospace</string></test>
<edit name="family" mode="prepend"><string>Noto Sans Mono CJK SC</string></edit>
</match>
<!-- Chinese Variants (standard, specified by variants) -->
<!-- not working? tried `fc-match -sort serif:lang=zh-hk`, but it returns `Noto Sans CJK SC` instead of HK-->
<!-- I have no idea when should i use prepend and append, so i will use prepend in all cases :( -->
<!-- "lang=zh-hans" or "lang=zh-hans-*" -->
<!-- Chinese, simplefied variants (used in Mainland China) -->
<match>
<test name="lang" compare="contains"><string>zh-hans</string></test>
<test name="family"><string>serif</string></test>
<edit name="family" mode="prepend"><string>Noto Serif CJK SC</string></edit>
</match>
<match>
<test name="lang" compare="contains"><string>zh-hans</string></test>
<test name="family"><string>sans-serif</string></test>
<edit name="family" mode="prepend"><string>Noto Sans CJK SC</string></edit>
</match>
<match>
<test name="lang" compare="contains"><string>zh-hans</string></test>
<test name="family"><string>monospace</string></test>
<edit name="family" mode="prepend"><string>Noto Sans Mono CJK SC</string></edit>
</match>
<!-- "lang=zh-hant" or "lang=zh-hant-*" -->
<!-- Chinese, traditional variants (used in Taiwan) -->
<match>
<test name="lang" compare="contains"><string>zh-hant</string></test>
<test name="family"><string>serif</string></test>
<edit name="family" mode="prepend"><string>Noto Serif CJK TC</string></edit>
</match>
<match>
<test name="lang" compare="contains"><string>zh-hant</string></test>
<test name="family"><string>sans-serif</string></test>
<edit name="family" mode="prepend"><string>Noto Sans CJK TC</string></edit>
</match>
<match>
<test name="lang" compare="contains"><string>zh-hant</string></test>
<test name="family"><string>monospace</string></test>
<edit name="family" mode="prepend"><string>Noto Sans Mono CJK TC</string></edit>
</match>
<!-- "lang=zh-hant-hk" or "lang=zh-hant-hk-*" -->
<!-- Chinese, traditional variants, Hong Kong variants -->
<match>
<test name="lang" compare="contains"><string>zh-hant</string></test>
<test name="family"><string>serif</string></test>
<edit name="family" mode="prepend"><string>Noto Serif CJK HK</string></edit>
</match>
<match>
<test name="lang" compare="contains"><string>zh-hant</string></test>
<test name="family"><string>sans-serif</string></test>
<edit name="family" mode="prepend"><string>Noto Sans CJK HK</string></edit>
</match>
<match>
<test name="lang" compare="contains"><string>zh-hant</string></test>
<test name="family"><string>monospace</string></test>
<edit name="family" mode="prepend"><string>Noto Sans Mono CJK HK</string></edit>
</match>
<!-- Chinese Compatible (non-standard, specified by country) -->
<!-- "lang=zh-cn" or "lang=zh-cn-*" -->
<!-- Chinese, Mainland China variants (Simplefied) -->
<match>
<test name="lang" compare="contains"><string>zh-cn</string></test>
<test name="family"><string>serif</string></test>
<edit name="family" mode="prepend"><string>Noto Serif CJK SC</string></edit>
</match>
<match>
<test name="lang" compare="contains"><string>zh-cn</string></test>
<test name="family"><string>sans-serif</string></test>
<edit name="family" mode="prepend"><string>Noto Sans CJK SC</string></edit>
</match>
<match>
<test name="lang" compare="contains"><string>zh-cn</string></test>
<test name="family"><string>monospace</string></test>
<edit name="family" mode="prepend"><string>Noto Sans Mono CJK SC</string></edit>
</match>
<!-- "lang=zh-tw" or "lang=zh-tw-*" -->
<!-- Chinese, Taiwan (Traditional) variants -->
<match>
<test name="lang" compare="contains"><string>zh-tw</string></test>
<test name="family"><string>serif</string></test>
<edit name="family" mode="prepend"><string>Noto Serif CJK TC</string></edit>
</match>
<match>
<test name="lang" compare="contains"><string>zh-tw</string></test>
<test name="family"><string>sans-serif</string></test>
<edit name="family" mode="prepend"><string>Noto Sans CJK TC</string></edit>
</match>
<match>
<test name="lang" compare="contains"><string>zh-tw</string></test>
<test name="family"><string>monospace</string></test>
<edit name="family" mode="prepend"><string>Noto Sans Mono CJK TC</string></edit>
</match>
<!-- "lang=zh-hk" or "lang=zh-hk-*" -->
<!-- Chinese, Hong Kong (variant of Traditional Chinese) variants -->
<match>
<test name="lang" compare="contains"><string>zh-hk</string></test>
<test name="family"><string>serif</string></test>
<edit name="family" mode="prepend"><string>Noto Serif CJK HK</string></edit>
</match>
<match>
<test name="lang" compare="contains"><string>zh-hk</string></test>
<test name="family"><string>sans-serif</string></test>
<edit name="family" mode="prepend"><string>Noto Sans CJK HK</string></edit>
</match>
<match>
<test name="lang" compare="contains"><string>zh-hk</string></test>
<test name="family"><string>monospace</string></test>
<edit name="family" mode="prepend"><string>Noto Sans Mono CJK HK</string></edit>
</match>
<!-- Japanese -->
<!-- "lang=ja" or "lang=ja-*" -->
<match target="pattern">
<test name="lang" compare="contains"><string>ja</string></test>
<test name="family"><string>serif</string></test>
<edit name="family" mode="prepend" binding="strong"><string>Noto Serif CJK JP</string></edit>
</match>
<match target="pattern">
<test name="lang" compare="contains"><string>ja</string></test>
<test name="family"><string>sans-serif</string></test>
<edit name="family" mode="prepend" binding="strong"><string>Noto Sans CJK JP</string></edit>
</match>
<match target="pattern">
<test name="lang" compare="contains"><string>ja</string></test>
<test name="family"><string>monospace</string></test>
<edit name="family" mode="prepend" binding="strong"><string>Noto Sans Mono CJK JP</string></edit>
</match>
<!-- Korean -->
<!-- "lang=ko" or "lang=ko-*" -->
<match target="pattern">
<test name="lang" compare="contains"><string>ko</string></test>
<test name="family"><string>serif</string></test>
<edit name="family" mode="prepend" binding="strong"><string>Noto Serif CJK KR</string></edit>
</match>
<match target="pattern">
<test name="lang" compare="contains"><string>ko</string></test>
<test name="family"><string>sans-serif</string></test>
<edit name="family" mode="prepend" binding="strong"><string>Noto Sans CJK KR</string></edit>
</match>
<match target="pattern">
<test name="lang" compare="contains"><string>ko</string></test>
<test name="family"><string>monospace</string></test>
<edit name="family" mode="prepend" binding="strong"><string>Noto Sans Mono CJK KR</string></edit>
</match>
<!-- Fallback fonts preference order -->
<!-- Might not be nessessary -->
<alias>
<family>sans-serif</family>
<prefer>
<family>Inter</family>
<family>Roboto</family>
<family>Noto Sans</family>
<family>Noto Sans CJK SC</family>
<family>Noto Sans CJK TC</family>
<family>Noto Sans CJK JP</family>
<family>Noto Sans CJK KR</family>
<family>Source Han Sans CN</family>
<family>Noto Color Emoji</family>
<family>Noto Emoji</family>
<!-- ??? whats all the stuff below ??? -->
<family>DejaVu Sans</family>
<family>Verdana</family>
<family>Arial</family>
<family>Albany AMT</family>
<family>Luxi Sans</family>
<family>Nimbus Sans L</family>
<family>Nimbus Sans</family>
<family>Helvetica</family>
<family>Lucida Sans Unicode</family>
<family>BPG Glaho International</family>
<family>Tahoma</family>
</prefer>
</alias>
<alias>
<family>serif</family>
<prefer>
<family>Noto Serif</family>
<family>Noto Serif CJK SC</family>
<family>Noto Serif CJK TC</family>
<family>Noto Serif CJK JP</family>
<family>Noto Serif CJK KR</family>
<family>Source Han Serif CN</family>
<family>Noto Color Emoji</family>
<family>Noto Emoji</family>
</prefer>
</alias>
<alias>
<family>monospace</family>
<prefer>
<family>JetBrainsMono Nerd Font</family>
<family>Noto Sans Mono</family>
<family>Noto Sans Mono CJK SC</family>
<family>Noto Sans Mono CJK TC</family>
<family>Noto Sans Mono CJK JP</family>
<family>Noto Sans Mono CJK KR</family>
<family>Noto Color Emoji</family>
<family>Noto Emoji</family>
</prefer>
</alias>
<!-- Rebind Windows fonts to sans-serif -->
<!-- Sans -->
<match target="pattern">
<test name="family" qual="any"><string>Microsoft YaHei</string></test>
<edit name="family" binding="same" mode="assign"><string>sans-serif</string></edit>
</match>
<match target="pattern">
<test name="family" qual="any"><string>SimHei</string></test>
<edit name="family" binding="same" mode="assign"><string>sans-serif</string></edit>
</match>
<!-- Serif -->
<match target="pattern">
<test name="family" qual="any"><string>SimSun</string></test>
<edit name="family" binding="same" mode="assign"><string>serif</string></edit>
</match>
<match target="pattern">
<test name="family" qual="any"><string>SimSun-18030</string></test>
<edit name="family" binding="same" mode="assign"><string>serif</string></edit>
</match>
<!-- Rebind old Chinese fonts -->
<!-- Sans -->
<match target="pattern">
<test name="family" qual="any"><string>WenQuanYi Zen Hei</string></test>
<edit name="family" binding="same" mode="assign"><string>sans-serif</string></edit>
</match>
<match target="pattern">
<test name="family" qual="any"><string>WenQuanYi Micro Hei</string></test>
<edit name="family" binding="same" mode="assign"><string>sans-serif</string></edit>
</match>
<match target="pattern">
<test name="family" qual="any"><string>WenQuanYi Micro Hei Light</string></test>
<edit name="family" binding="same" mode="assign"><string>sans-serif</string></edit>
</match>
<!-- Uniform unliked fonts -->
<!-- Monospace -->
<match target="pattern">
<test name="family" qual="any"><string>Liberation Mono</string></test>
<edit name="family" binding="same" mode="assign"><string>monospace</string></edit>
</match>
<match target="pattern">
<test name="family" qual="any"><string>SF Mono</string></test>
<edit name="family" binding="same" mode="assign"><string>monospace</string></edit>
</match>
<match target="pattern">
<test name="family" qual="any"><string>Noto Sans Mono</string></test>
<edit name="family" binding="same" mode="assign"><string>monospace</string></edit>
</match>
<!-- why is DejaVu Sans still here after fonts.enableDefaultPackages = false -->
<selectfont>
<rejectfont>
<pattern><patelt name="family" ><string>DejaVu Sans</string></patelt></pattern>
</rejectfont>
</selectfont>
<!-- Portal 2 missing non Latin font -->
<!-- (maybe even includes other valve games, since csgo console is missing non latin font too) -->
<!-- https://wiki.archlinux.org/title/Steam/Game-specific_troubleshooting#Portal_2 -->
<match target="pattern">
<test name="family" qual="any"><string>Helvetica</string></test>
<edit name="family" binding="same" mode="assign"><string>sans-serif</string></edit>
</match>
</fontconfig>