在系统范围内更改等宽字体

Lee*_*eek 15 fonts fontconfig trisquel

默认情况下,我的发行版 (Trisquel) 的等宽字体是字体 A。我想将其更改为字体 B。前段时间,我设法对字体 C 进行了部分更改,但此后我忘记了这种方法,无法重现它。

问题是现在我可能会在等宽上下文中看到所有三种字体。以gnome-tweak-toolroot 和用户身份使用,我已将“等宽”字段更改为字体 B。我也通过 gsettings 上的命令行完成了此操作,再次以 root 和用户身份。然而:

  • 如果网页请求样式{font-family: monospace;},则显示字体 C。 编辑:这是 Firefox 中的设置,我已更改。
  • 在 Inkscape 和 gedit 字体菜单中,有一种称为“Monospace”的字体,即字体 A。我已更改的发行版的默认 UI 字体也显示在这些菜单中,名称为“Sans”和“Serif”。
  • 当我收到的 Thunderbird 消息被格式化为纯文本时,它们以字体 A 显示。除非明确更改,否则我写的消息也会以“Sans”和“Monospace”字体显示。

我该如何解决这种情况,让 Font B 显示在上述所有上下文中,并且神秘的“Sans”字体被我当前使用的 UI 字体替换?

con*_*tor 13

将此添加到您的~/.config/fontconfig/fonts.conf文件以将字体 B 设置为默认等宽字体

<match target="pattern">
  <test name="family" qual="any">
    <string>monospace</string>
  </test>
  <edit binding="strong" mode="prepend" name="family">
    <string>Font B</string>
  </edit>
</match>
Run Code Online (Sandbox Code Playgroud)

或者在/etc/fonts/local.conf系统范围内设置它。

  • 需要明确的是,无需向该文件添加 &lt;?xml... 或其他任何内容。其完全如上所示。节省。然后您可以测试它是否适用于:`fc-match monospace`(确保该名称下存在“Font B”)。如果您需要多个规则,请将其包裹在“&lt;fontconfig&gt;”标记周围。 (2认同)

aul*_*ron 5

我发现这是有效的

gsettings set org.gnome.desktop.interface monospace-font-name 'Noto Mono 11' (可能不是所有应用程序,gedit 都会立即更改)


Lee*_*eek -2

我通过在系统中搜索字体 A 的名称找到了它。应该有一个文件(更准确地说,是一个文件的链接)/etc/fonts/conf.d/01-trisquel.conf。您需要编辑此文件以将您选择的字体名称包含为最高优先级(高于现有<family>条目)。