Ubuntu 22.04系统中如何移除Sans、Serif、Monospace标准字体名称
Ubuntu 22.04系统中如何移除Sans、Serif、Monospace标准字体名称
嘿,我之前也碰到过这个问题!你提到的Sans、Serif、Monospace其实不是真实存在的字体文件,而是fontconfig(Ubuntu的字体配置系统)设置的通用别名——这就是为啥你在字体管理器里找不到它们的原因。下面是我亲测有效的两种移除方法,你可以根据需求选择:
方法一:系统级修改(影响所有用户)
这种方法会对整个系统生效,适合需要全局移除这些别名的场景:
- 首先备份系统的通用字体别名配置文件,避免修改出错后无法恢复:
sudo cp /etc/fonts/conf.d/60-generic.conf /etc/fonts/conf.d/60-generic.conf.bak sudo cp /etc/fonts/conf.d/60-latin.conf /etc/fonts/conf.d/60-latin.conf.bak - 编辑
60-generic.conf文件,找到所有包含<family>Sans</family>、<family>Serif</family>、<family>Monospace</family>的<alias>块,把这些块用注释包裹(或者直接删除):
比如原本的Sans别名块:sudo nano /etc/fonts/conf.d/60-generic.conf
改成注释形式:<alias> <family>Sans</family> <prefer> <family>DejaVu Sans</family> <family>Arial</family> </prefer> </alias><!-- <alias> <family>Sans</family> <prefer> <family>DejaVu Sans</family> <family>Arial</family> </prefer> </alias> --> - 用同样的方法处理
60-latin.conf文件里的对应别名块; - 更新fontconfig缓存,让修改立即生效:
fc-cache -fv - 重启Chrome或其他应用,就能看到这些标准字体名称不再显示了。
方法二:用户级修改(仅影响当前用户)
如果不想改动系统全局配置,只针对自己的账号生效,可以用这种方式:
- 在用户目录下创建fontconfig的自定义配置目录:
mkdir -p ~/.config/fontconfig/conf.d/ - 创建一个自定义配置文件,比如
99-remove-generic-aliases.conf:nano ~/.config/fontconfig/conf.d/99-remove-generic-aliases.conf - 将以下内容粘贴到文件中,保存退出:
<?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd"> <fontconfig> <!-- 移除Sans通用别名 --> <alias> <family>Sans</family> <remove> <family>*</family> </remove> </alias> <!-- 移除Serif通用别名 --> <alias> <family>Serif</family> <remove> <family>*</family> </remove> </alias> <!-- 移除Monospace通用别名 --> <alias> <family>Monospace</family> <remove> <family>*</family> </remove> </alias> </fontconfig> - 同样更新fontconfig缓存:
fc-cache -fv - 重启应用后就能生效啦。
备注:内容来源于stack exchange,提问作者Max




