揭秘 Linux 上的字体外观:正确的方法

揭秘 Linux 上的字体外观:正确的方法

有人能告诉我字体外观(提示、抗锯齿)的工作原理吗?据我所知,

  1. 有 .fonts.conf
  2. Gnome、XFCE 和 KDE 有单独的字体设置(或者它们只是修改 .fonts.conf;或者它们将字体配置保存在哪里?)对于 XFCE,它位于 ~/.config/xfce4/xfconf/xfce-perchannel-xml/xsettings.xml 中。
  3. 然后有.Xresources 和 libXFT。
  4. 然后有一些关于 BCI 的信息,默认情况下未启用,但据我所知,这似乎相当过时。
  5. 最后,存在 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.conffreetype2

  • XftX 资源仅在通过 libxft 在 X 中使用 FreeType 时才适用。它们会覆盖fontconfig设置。

  • gnome-settings-managerGNOME 字体平滑设置在启动时直接传递给 Xft 。它们会覆盖 X 资源中指定的设置。KDE 和 Xfce 中的情况可能相同。

  • 与任何其他程序一样,使用 libxft 的终端仿真器可以告诉它使用特定设置(例如“禁用抗锯齿”),可能是每个小部件或其他设置。(在 Windows 中,程序也可以选择退出 ClearType。)

  • WM 表示“窗口管理器”。窗口管理器只关心管理窗口,我还没见过哪个会触及我的字体设置。(尝试直接启动metacityxfwm4compiz您应该看不到字体渲染有什么不同。)

相关内容