放大 Nerd Fonts 的图标

最近困惑于 Nerd Fonts 的图标比字小。搜索一番,找到了这个 Issue:Glyph smaller than character #127。大致原因是,等宽的 Nerd Fonts 字体中,图标的宽度和字母一样,高度自然比字母矮,和字母放在一起就显得很小。我直接从 Nerd Fonts 的网站下载了 DejaVuSansMono Nerd Font,也受到了这个问题的影响:终端里 lsd 和 NeoVim 里的图标都很小。

既然等宽 Nerd Fonts 字体中的图标,宽度受到限制,那如果不用等宽字体的图标,也就是说,用等宽字体的字符加上非等宽字体的图标,是不是就可以了?抱着这个想法,我删掉了 DejaVuSansMono Nerd Font,下载 NotoSans Nerd Font,然后修改 ~/.config/fontconfig/fonts.conf

1
2
3
4
5
6
7
8
9
<match>
<test name="family">
<string>monospace</string>
</test>
<edit binding="strong" mode="prepend" name="family">
<string>DejaVu Sans Mono</string>
<string>NotoSans Nerd Font</string>
</edit>
</match>

这样,普通字符会匹配到 DejaVu Sans Mono,图标匹配到 NotoSans Nerd Font。由于后者是无衬线字体,自然没有字符宽度的限制。