有人能告诉我字体外观(提示、抗锯齿)的工作原理吗?据我所知,
- 有 .fonts.conf
- Gnome、XFCE 和 KDE 有单独的字体设置(或者它们只是修改 .fonts.conf;或者它们将字体配置保存在哪里?)对于 XFCE,它位于 ~/.config/xfce4/xfconf/xfce-perchannel-xml/xsettings.xml 中。
- 然后有.Xresources 和 libXFT。
- 然后有一些关于 BCI 的信息,默认情况下未启用,但据我所知,这似乎相当过时。
- 最后,存在 DPI 设置的问题,我可以在 Xorg 或每个 WM 中指定。
我不知道什么时候该使用哪种设置。更令人困惑的是,一些终端程序有抗锯齿字体选项。
看来 .fonts.conf 是这些选项中最好的;但是使用 .fonts.conf 时,在不同的 WM 下外观似乎仍然不同。
顺便说一下,我正在运行 Debian 和 Ubuntu。
答案1
- /etc/fonts 保存 Xft 设置,而 .fonts.conf 是 /etc/fonts/* 的每个用户的覆盖
- DE 使用 X 设置守护进程来设置其设置(有多个守护进程,每个 DE 中有一个,还有几个独立的守护进程用于轻量级 WM)
- 应用程序可以直接从 Xft(/etc/fonts)获取设置,或者从 X 设置守护进程(如果处于活动状态)获取设置。
- 一些应用程序(例如 Google Chrome)仅从 X 设置守护进程获取设置。因此,在轻量级 WM 下运行的 Chrome 中获取正确字体的唯一方法是运行某种 xsettingsd
- gtk 和 qt 应用程序对某些 Xft 设置的处理方式不同,因此创建在 Qt 和 GTK 中以相同方式工作的 fonts.conf 可能很棘手。
这是我的想法,但我没有真正检查过:
- GDK/Pango 使用 Xft 及其默认设置,可以来自 fonts.conf 或 X 设置。
- Qt 对 fonts.conf 设置进行了额外的调整,这破坏了某些设置。
- Cairo 似乎尊重 xft 设置,但与 Pango 相比,渲染看起来略有不同。
答案2
我不确定以下内容有多少是真实的,但这就是我的理解。如果您愿意,请评论/编辑/更正。
/etc/fonts/local.conf
和适用于。它们处理字体替换、每个字体的设置以及所有这些东西,并且无论 FreeType 在何处使用,它们都适用于 FreeType/etc/fonts/conf.d/
。~/.fonts.conf
freetype2
Xft
X 资源仅在通过 libxft 在 X 中使用 FreeType 时才适用。它们会覆盖fontconfig
设置。gnome-settings-manager
GNOME 字体平滑设置在启动时直接传递给 Xft 。它们会覆盖 X 资源中指定的设置。KDE 和 Xfce 中的情况可能相同。与任何其他程序一样,使用 libxft 的终端仿真器可以告诉它使用特定设置(例如“禁用抗锯齿”),可能是每个小部件或其他设置。(在 Windows 中,程序也可以选择退出 ClearType。)
WM 表示“窗口管理器”。窗口管理器只关心管理窗口,我还没见过哪个会触及我的字体设置。(尝试直接启动
metacity
、xfwm4
,compiz
您应该看不到字体渲染有什么不同。)