不喜欢linux默认使用的中文字体(Noto fons CJK / Souce Hans CJK)和西文字体(noto fonts),个人更喜欢修长的字体。 苹果的字体刚好符合我的要求,故有以下方案。
- 中文字体: 苹方字体
- 英文字体: Inter
- 等宽字体: Maple Mono CN
- emoji: Apple Color Emoji
- icon: Symbols Nerd Font Mono
苹方字体和苹果emoji不必多说。Inter风格类似于SF Pro。Maple字体有着圆润修长的字形和连字,并且使用symbols获得正确的终端icon显示
不用SF Pro,因为SF Pro的小字体字体间隔会很奇怪。非要用的话可以试试aur上打了mac补丁的 freetype 。
非arch系可以手动下载字体然后使用gnome字体管理器手动安装。谁叫你不用arch呢。就得这么麻烦。
对于arch, 请确保你已安装yay或paru:
首先,输入命令(如使用paru,替换'yay'即可):
sudo pacman -S inter-font ttf-nerd-fonts-symbols-mono
yay -S otf-apple-pingfang ttf-apple-emoji ttf-maplemono-cn-unhinted
最后,把文件放到~/.config/fontconfig/里去,重启/注销登陆后字体配置会自动生效。
tips: 下载ttf-maplemono-nf-unhinted时,aur会默认下载maple的所有的分支,然后只安装其中的ttf-maplemono-cn-unhinted。无解,介意请使用arch linux cn.
如果你是Gnome / gtk用户,你会发现Adwaita Sans总是会时不时被调用。这不是字体配置的锅,而是firefox读取system-ui字体簇时优先读取了gtk的字体配置。解决办法是将gtk的字体指定为你想要的,例如:
gsettings set org.gnome.desktop.interface font-name "Inter 11"
这样,你就发现所有无衬线字体默认使用Inter了。
arch linux不必特意添加渲染设置,因为字体渲染引擎已经默认启用如下的渲染设置(字体微调):
- 抗锯齿
- BCI(字节码解释器)
- 微调风格-hintslight
- 次像素排列(RGBA)
- LCD滤镜:lcddefault
可能4k屏需要关闭字体微调, 以获得更好的字体显示效果? 因为ppi大于300的屏幕, 字体无需微调就会自动对齐.
fonts.conf上已经定义好了各种类型的字体,并且有注释, 按需修改即可:
- 无衬线字体
- 衬线字体
- 等宽字体
对于无衬线字体和衬线字体的设置,排在首位得是英文字体,第二个才是中文字体.这样才能确保只有在需要显示中文的情况下才使用中文字体.
- 直接检查:
xmllint --noout ~/.config/fontconfig/fonts.conf
重新生成字体缓存也能自动检查语法错误:
fc-cache -fv
不管哪种方法, 无错误输出则语法正确.