配置 Flatpak 的字体

Flatpak 的运行时(runtime)拥有自己的独立字体配置,而忽视了操作系统本身的字体配置。为了统一字体效果,我们需要额外配置一下字体。

配置 FontConfig 文件

1
2
mkdir -p ~/.config/fontconfig/conf.d
touch ~/.config/fontconfig/conf.d/64-language-selector-prefer.conf

内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<alias>
<family>sans-serif</family>
<prefer>
<family>Noto Sans</family>
<family>Noto Sans CJK SC</family>
<family>Noto Sans CJK TC</family>
</prefer>
</alias>
<alias>
<family>serif</family>
<prefer>
<family>Noto Serif</family>
<family>Noto Serif CJK SC</family>
<family>Noto Serif CJK TC</family>
</prefer>
</alias>
<alias>
<family>monospace</family>
<prefer>
<family>Noto Sans Mono</family>
<family>Noto Sans Mono CJK SC</family>
<family>Noto Sans Mono CJK TC</family>
</prefer>
</alias>
</fontconfig>

应用配置

将自定义的字体配置软链接到 Flatpak 的应用配置目录:

1
2
3
4
5
for FlatpakAppDir in ~/.var/app/*; do
if [ ! -L $FlatpakAppDir/config/fontconfig ]; then
ln -s ~/.config/fontconfig $FlatpakAppDir/config/
fi
done

可以把文件保存到 /etc/profile.d/flatpak-fonts.sh,以便自动应用设置。

允许 Flatpak 应用访问字体配置:

1
flatpak --user override --filesystem=~/.config/fontconfig:ro