答案是修改~/.fonts.conf文件并刷新缓存:创建或编辑~/.fonts.conf,填入启用antialias、hinting、hintslight、rgba=rgb和lcdfilter=lcddefault的XML配置,保存后执行fc-cache -fv并注销重登即可生效。

fontconfig 是 Ubuntu 字体平滑的核心机制,直接改它比调图形界面更可靠。系统默认没开子像素渲染和轻微提示(hintslight),所以字体发虚、发毛、边缘锯齿明显——这不是显示器问题,是配置没到位。
怎么用 ~/.fonts.conf 快速启用平滑
这是最轻量、用户级生效的方式,不影响全局,适合不想碰 /etc/fonts/conf.d/ 的人。
- 运行
gedit ~/.fonts.conf(或nano ~/.fonts.conf)创建文件 - 粘贴以下内容(注意 XML 格式严格,不能漏引号或标签闭合):
<?xml version="1.0"?><fontconfig><match target="font"><edit name="antialias" mode="assign"><bool>true</bool></edit><edit name="hinting" mode="assign"><bool>true</bool></edit><edit name="hintstyle" mode="assign"><const>hintslight</const></edit><edit name="rgba" mode="assign"><const>rgb</const></edit><edit name="lcdfilter" mode="assign"><const>lcddefault</const></edit></match></fontconfig>
保存后执行 fc-cache -fv 刷新缓存,然后注销重登——不是重启,重登即可生效。
⚠️ 常见坑:rgba 设为 rgb 前必须确认你的屏幕是 RGB 排列(绝大多数 LCD 是),如果用的是 BGR 或垂直排列屏(如某些 OLED 笔记本),会反而糊;不确定就先试 rgb,再试 bgr 对比效果。
/etc/fonts/conf.d/ 里改系统级配置的注意事项
如果你装了多用户系统,或希望所有桌面环境(GNOME/KDE/XFCE)统一效果,就得动系统级配置。但别直接改 50-user.conf 或 10-scale-bitmap-fonts.conf —— 它们会被包管理器覆盖。
- 新建文件:比如
sudo nano /etc/fonts/conf.d/10-hinting-slight.conf - 内容和上面
~/.fonts.conf类似,但加一层更稳妥(匹配字体族而非单个字体实例) - 写完记得
sudo fc-cache -fv,否则改了也白改
Ubuntu 22.04+ 默认启用了 fontconfig 的 autohinter,但若你手动关过 autohint(比如为了兼容旧字体),会导致中文笔画粘连——此时要显式设 。
GNOME/KDE 图形界面设置和 fontconfig 的关系
图形设置只是写入用户级 gsettings 或 KDE 配置文件,最终仍会映射到 fontconfig 规则。但有个关键区别:
Ubuntu 26.04 LTS(代号“Resolute Raccoon”)是Canonical于2026年4月23日发布的下一代长期支持版操作系统,提供长达10年的技术支持。它搭载Linux 7.0内核与GNOME 50桌面环境,全面转向Wayland协议,并引入Rust重写的核心工具以增强安全性。官方提供适用于AMD64和ARM64架构的桌面及服务器ISO镜像,是追求前沿技术与极致稳定的开发者
- GNOME 设置里的“抗锯齿”开关,只控制
antialias,不碰hintstyle或rgba - KDE 的“子像素渲染”选项设为 RGB 后,实际写入的是
~/.fonts.conf的rgba和lcdfilter,但不会自动开hinting - 两者都不影响终端(如 gnome-terminal、konsole)的字体渲染——终端走的是独立的 Pango + fontconfig 路径,必须单独配
所以,光点几下图形设置,往往只解决一半问题。真要全场景平滑,fontconfig 配置文件才是唯一可信路径。
验证是否生效和排查失效原因
别靠肉眼猜,用命令验证:
- 查当前生效的 hintstyle:
fc-match -v 'sans' | grep hintstyle,输出应含hintslight - 查 rgba 设置:
fc-match -v 'sans' | grep rgba,应为rgb - 看是否开了抗锯齿:
fc-match -v 'sans' | grep antialias,应为true
如果返回 false 或空,说明配置没加载成功——常见原因是 XML 格式错误(比如引号是中文全角)、文件名带空格、或 fc-cache 没刷新。另外,Flatpak 应用(如 VS Code、Firefox Flatpak 版)自带字体栈,会绕过系统 fontconfig,需单独配 ~/.var/app/。
真正麻烦的不是配错,而是配对了却在某个应用里看不到效果——那大概率是那个应用自己硬编码了渲染参数,或者用了非 Pango 的文本渲染路径(比如 Electron 应用依赖 Chromium 的 Skia)。这种就得另找补丁或换字体。










