Wine anti aliasing doesn’t work

fontswine

I'm using infinality for my font rendering on my Arch machine. (And yes, I've installed the multilib packages.) My fonts are beautiful everywhere except in Wine since anti aliasing does not work out of the box.

I've found a fix here: I have to run xrdb -query | grep -vE 'Xft\.(anti|hint|rgba)' | xrdb in the terminal and then anti aliasing works. There are 3 reasons I'm not satisfied with this solution:

  1. It's not permanent. I have to run this command every time I restart my pc.
  2. It's hacky.
  3. I have no idea what this is doing. I'd like to understand what's going on.

If anyone can give me a solution that fixes anti aliasing and meets at least some of my requirements I would really appreciate it.

Best Answer

Why does the xrdb command fix font smoothing?

xrdb manages X resources.

xrdb -query lists currently loaded resources.

Piping that to grep -vE 'Xft\.(anti|hint|rgba)' filters out resources containing "anti", "hint" or "rgba".

Finally the filtered list is piped back to xrdb, which by default will overwrite any existing settings.

So this has the effect of removing any X settings to do with antialiasing, hinting, or rgba smoothing. This means at some point those values are being set to something you don't want, because the defaults are fixing the problem.

How can we permanently fix this?

How the values are set depends entirely on how you start your session. Often startup scripts will load them from ~/.Xresources, so you can try putting the filtered output in there.

In my case I use Xfce and to get the correct values to stick I had to set them within xfconf. That can be done graphically (xfce4-settings-editor, navigate to xsettings), or from the terminal, e.g. to set RGBA smoothing correctly: xfconf-query -c xsettings -p /Xft/RGBA -s "rgb".

Also see the Arch wiki page on X resources.

Related Question