Package: fontconfig
Version: 2.11.0-6.1
Severity: normal

Dear Maintainer,

Even though I have `10-sub-pixel-rgb.conf` and `11-lcdfilter-default.conf`
symlinked in `/etc/fonts/conf.d` from `/usr/share/fontconfig/conf.avail`, these
settings do not seem to be honoured on my Debian Sid machine.

They seem to register correctly:

    $ fc-match '' lcdfilter rgba
    :rgba=1:lcdfilter=1

but they are not applied in practice (as tested with Iceweasel and Audacious).

However, by adding a `~/.config/font-manager/local.conf` file with contents:

    <?xml version='1.0'?>
    <!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
    <fontconfig>
        <match target="font">
            <edit mode="assign" name="rgba"><const>rgb</const></edit>
            <edit mode="assign"
name="lcdfilter"><const>lcddefault</const></edit>
        </match>
    </fontconfig>

`fc-match` will still give the same output, but now subpixel rendering is
activated, as verified by squinting heavily or taking a screenshot and
magnifying it (see attached file).

The difference in the configuration syntax is that the distribution uses
`target="pattern"` and `mode="append"` instead of `target="font"` and
`mode="assign"`. This seems to be done to honour existing settings if available
through e.g. desktop environment setting applications. It can be noted that
`man fonts-conf` has a sample user configuration that says:

    <!--
         use rgb sub-pixel ordering to improve glyph appearance on
         LCD screens.  Changes affecting rendering, but not matching
         should always use target="font".
    -->
    <match target="font">
         <edit name="rgba" mode="assign"><const>rgb</const></edit>
    </match>

Either the statement in the comment is outdated, or the distribution
configuration just does not adhere to the stated principle. In any case, this
is the setting format that seems to work.

I have tested this in Iceweasel and Audacious with identical results. I attach
a screenshot scaled up 4 times that shows colored fringes when I apply the
`local.conf` settings above (as expected when using subpixel rendering), and
only grayscale antialiasing when I comment out the `rgba` and `lcdfilter`
entries in `local.conf` even though they are present in `/etc/fonts/conf.d`
(both of these options seem to separately have the same issue with the
configuration provided by the distribution).

I have in my `local.conf` tried using

* `target="pattern"` and `mode="assign"`
* `target="pattern"` and `mode="append"`
* `target="font"` and `mode="append"`

but they give the same result as if the file was not there at all, except that
when using `mode="append"`, the fc-match output changes to:

    $ fc-match '' lcdfilter rgba
    :rgba=1,1:lcdfilter=1,1

Only the combination of `target="font"` and `mode="assign"` seems to be picked
up correctly by the renderer.

To my knowledge there are no additional settings on this computer that should
override `/etc/fonts/conf.d`. It uses Fluxbox as window manager and does not
have a desktop environment installed (though there are some Gnome applications
installed), and in any case I guess such a setting would have been made known
by `fc-match`. I do not know if this is rather a Pango issue or something else,
but I thought I would start here for guidance.

The attached file shows how Audacious renders text when I use the effective
local configuration as compared with only using the distributions configuration
files in `/etc/fonts/conf.d`.



-- System Information:
Debian Release: jessie/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: i386 (i686)

Kernel: Linux 3.14-2-686-pae (SMP w/2 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=sv_SE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages fontconfig depends on:
ii  fontconfig-config  2.11.0-6.1
ii  libc6              2.19-10
ii  libfontconfig1     2.11.0-6.1
ii  libfreetype6       2.5.2-1.1

fontconfig recommends no packages.

fontconfig suggests no packages.

-- no debconf information

Reply via email to