fontconfig 忽略了 lcdfilter 设置

fontconfig 忽略了 lcdfilter 设置

我想使用 LCD 滤镜设置https://wiki.archlinux.org/index.php/font_configuration#LCD_filter。该文件已经存在:

$ cat /etc/fonts/conf.d/11-lcdfilter-default.conf 
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
<fontconfig>
  <description>Use lcddefault as default for LCD filter</description>
<!--  Use lcddefault as default for LCD filter -->
  <match target="pattern">
    <!--
      This configuration is available on the major desktop environments.
      We shouldn't overwrite it with "assign" unconditionally.
      Most clients may picks up the first value only. so using "append"
      may simply works to avoid it.
    -->
    <edit mode="append" name="lcdfilter">
      <const>lcddefault</const>
    </edit>
  </match>
</fontconfig>

然而,这些设置似乎被忽略:

$ grep lcd /etc/fonts/fonts.conf | wc
      0       0       0
$ fc-match --verbose | rg lcd
       lcdfilter: 0(i)(w)

这是跑完之后的样子fc-cache -f

用于获取更改的命令是什么/etc/fonts/conf.d?我不想重新启动系统,因为这会花费太长时间(我需要多次执行此操作来排除故障)。

答案1

我从来没有弄清楚如何更广泛地解决这个问题,但事实证明另一个配置文件覆盖了我的系统级配置文件:

$ grep cache /etc/fonts/fonts.conf
<!-- Font cache directory list -->
    <cachedir>/var/cache/fontconfig</cachedir>
    <cachedir prefix="xdg">fontconfig</cachedir>
    <cachedir>~/.fontconfig</cachedir>

我没有,~/.fontconfig但事实证明我确实将~/.config/fontconfig/fonts.conf其本身设置lcdfilternone。我删除了这个文件(它没有任何其他重要设置,否则我只会编辑/删除该lcdfilter块),并且在关闭并再次打开我的应用程序后,字体按预期呈现。fc-cache -r也显示出正确的结果。

相关内容