Skip to content

Instantly share code, notes, and snippets.

@Asutorufa
Last active April 21, 2022 06:15
Show Gist options
  • Save Asutorufa/f43e2167d58827b26fe649278a0884af to your computer and use it in GitHub Desktop.
Save Asutorufa/f43e2167d58827b26fe649278a0884af to your computer and use it in GitHub Desktop.
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
<!-- 关闭内嵌点阵字体 -->
<match target="font">
<edit name="embeddedbitmap" mode="assign">
<bool>false</bool>
</edit>
</match>
<!-- 打开lcd屏幕优化 -->
<!-- 关于lcdfilter, 因为我们在使用 FreeType2 自带的 Harmony 子像素渲染, 应该是不需要设置的. -->
<!-- <match target="font">
<edit name="lcdfilter" mode="assign">
<const>lcddefault</const>
</edit>
</match>-->
<!-- Default system-ui fonts -->
<match target="pattern">
<test name="family">
<string>system-ui</string>
</test>
<edit name="family" mode="prepend" binding="strong">
<string>sans-serif</string>
</edit>
</match>
<!-- Default sans-serif font -->
<match>
<test name="family" qual="any" compare="eq">
<string>sans-serif</string>
</test>
<edit name="family" binding="weak" mode="prepend">
<string>Source Sans Pro</string>
<string>Source Han Sans JP</string>
<string>Source Han Sans TW</string>
<string>Source Han Sans HK</string>
<string>Source Han Sans CN</string>
<string>Source Han Sans KR</string>
<string>Noto Sans CJK JP</string>
<string>Noto Sans CJK TC</string>
<string>Noto Sans CJK HK</string>
<string>Noto Sans CJK SC</string>
<string>Noto Sans CJK KR</string>
</edit>
</match>
<!-- Default serif fonts -->
<match>
<test name="family" qual="any" compare="eq"><string>serif</string></test>
<edit name="family" binding="weak" mode="prepend">
<string>Source Serif Pro</string>
<string>Source Han Serif JP</string>
<string>Source Han Serif TW</string>
<string>Source Han Serif CN</string>
<string>Source Han Serif KR</string>
<string>Noto Serif CJK JP</string>
<string>Noto Serif CJK TC</string>
<string>Noto Serif CJK HK</string>
<string>Noto Serif CJK SC</string>
<string>Noto Serif CJK KR</string>
</edit>
</match>
<!-- Default monospace fonts -->
<match>
<test name="family" qual="any" compare="eq"><string>monospace</string></test>
<edit name="family" binding="weak" mode="prepend">
<string>JetBrains Mono</string>
<string>Monaco</string>
<string>Source Code Pro</string>
<string>Noto Sans Mono</string>
<string>Noto Sans Mono CJK JP</string>
<string>Noto Sans Mono CJK TC</string>
<string>Noto Sans Mono CJK HK</string>
<string>Noto Sans Mono CJK SC</string>
</edit>
</match>
<!-- Default font for ja -->
<match target="pattern">
<test qual="any" name="lang" compare="contains"><string>ja</string></test>
<test qual="any" name="family" compare="eq"><string>serif</string></test>
<edit name="family" mode="prepend" binding="strong">
<string>Source Han Serif JP</string>
</edit>
</match>
<match target="pattern">
<test qual="any" name="lang" compare="contains"><string>ja</string></test>
<test qual="any" name="family" compare="eq"><string>sans-serif</string></test>
<edit name="family" mode="prepend" binding="strong">
<string>Source Han Sans JP</string>
</edit>
</match>
<match target="pattern">
<test qual="any" name="lang" compare="contains"><string>ja</string></test>
<test qual="any" name="family" compare="eq"><string>monospace</string></test>
<edit name="family" mode="prepend" binding="strong">
<string>Noto Sans Mono CJK JP</string>
</edit>
</match>
<!-- Default font for the zh_CN locale (no fc-match pattern) -->
<match target="pattern">
<test name="lang" compare="contains"><string>zh</string></test>
<test name="family"><string>serif</string></test>
<edit name="family" mode="prepend" binding="strong">
<string>Source Han serif TW</string>
<string>Source Han serif HK</string>
<string>Source Han serif CN</string>
</edit>
</match>
<match target="pattern">
<test name="lang" compare="contains"><string>zh</string></test>
<test name="family"><string>sans-serif</string></test>
<edit name="family" mode="prepend" binding="strong">
<string>Source Han Sans TW</string>
<string>Source Han Sans HK</string>
<string>Source Han Sans CN</string>
</edit>
</match>
<match target="pattern">
<test name="lang" compare="contains"><string>zh</string></test>
<test name="family"><string>monospace</string></test>
<edit name="family" mode="prepend" binding="strong">
<string>Noto Sans Mono CJK TC</string>
<string>Noto Sans Mono CJK HK</string>
<string>Noto Sans Mono CJK SC</string>
</edit>
</match>
<!-- Default font for the ko-KR locale (no fc-match pattern) -->
<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>Source Han serif 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>Source Han Sans 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>
<!-- Windows & Linux Chinese fonts. -->
<!-- 把所有常见的中文字体映射到思源黑体和思源宋体,这样当这些字体未安装时会使用思源黑体和思源宋体.
解决特定程序指定使用某字体,并且在字体不存在情况下不会使用fallback字体导致中文显示不正常的情况. -->
<match target="pattern">
<test qual="any" name="family"><string>WenQuanYi Zen Hei</string></test>
<edit name="family" mode="assign" binding="same"><string>Source Han Sans CN</string></edit>
</match>
<match target="pattern">
<test qual="any" name="family"><string>WenQuanYi Micro Hei</string></test>
<edit name="family" mode="assign" binding="same"><string>Source Han Sans CN</string></edit>
</match>
<match target="pattern">
<test qual="any" name="family"><string>WenQuanYi Micro Hei Light</string></test>
<edit name="family" mode="assign" binding="same"><string>Source Han Sans CN</string></edit>
</match>
<match target="pattern">
<test qual="any" name="family"><string>Microsoft YaHei</string></test>
<edit name="family" mode="assign" binding="same"><string>Source Han Sans CN</string></edit>
</match>
<match target="pattern">
<test qual="any" name="family"><string>SimHei</string></test>
<edit name="family" mode="assign" binding="same"><string>Source Han Sans CN</string></edit>
</match>
<match target="pattern">
<test qual="any" name="family"><string>SimSun</string></test>
<edit name="family" mode="assign" binding="same"><string>Source Han Serif CN</string></edit>
</match>
<match target="pattern">
<test qual="any" name="family"><string>SimSun-18030</string></test>
<edit name="family" mode="assign" binding="same"><string>Source Han Serif CN</string></edit>
</match>
<!-- Replace monospace fonts -->
<match target="pattern">
<test name="family" compare="contains"><string>Source Code</string></test>
<edit name="family" binding="same"><string>JetBrains Mono</string></edit>
</match>
<match target="pattern">
<test name="family"><string>Liberation Mono</string></test>
<edit name="family" binding="same"><string>JetBrains Mono</string></edit>
</match>
<match target="pattern">
<test name="family"><string>DejaVu Sans Mono</string></test>
<edit name="family" binding="same"><string>JetBrains Mono</string></edit>
</match>
<dir>~/.fonts</dir>
<!-- 抗锯齿 -->
<!-- 使用字体自带的微调 -->
<!-- 微调样式 -->
<!-- 打开亚像素渲染 -->
<match target="font">
<edit name="hinting" mode="assign">
<bool>true</bool>
</edit>
</match>
<match target="font">
<edit name="hintstyle" mode="assign">
<const>hintmedium</const>
</edit>
</match>
<match target="font">
<edit name="rgba" mode="assign">
<const>rgb</const>
</edit>
</match>
<match target="font">
<edit name="antialias" mode="assign">
<bool>true</bool>
</edit>
</match>
</fontconfig>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment