- Edited
So I spent a while tuning and tweaking and I definitely have specific fonts I like, many of them hinted truetype fonts. The newest ones out these days tend to be unhinted opentype fonts. Bitmaps tend to be deprecated but you can still get them to work. Unfortunately, there is NO one size fits all fonts set of settings.
There are two things, the file .fonts.conf which on my system is located in my home directory, might be a different location in your system.
The other is, the environment variables which I have included here, you can paste the individual line into the terminal one at a time, close then open up the web browser which does respect them. Then repeat the process to try the next one to see how it looks. They aren't saved permanently, if you want them to be saved permanently you have to add them to one of those files that loads on boot, whether environment or profile or whatever.
My suggestion, first try the 3 freetype interpreter variables with the browser you use. See which one you like, then try the fonts.conf I use, you will need to log out and log back in.
You will notice I have antialias off in it. Ungoogled-chromium will respect that, so will Libreoffice. Would be nice if it was more, but whatever.
export FREETYPE_PROPERTIES='truetype:interpreter-version=35'
export FREETYPE_PROPERTIES='truetype:interpreter-version=38'
export FREETYPE_PROPERTIES='truetype:interpreter-version=40'
lcdfilter has 4 options, meant for use with subpixel usually. Only 2 are worth using, lcddefault and lcdlight. The difference between these two is small, but light is a tiny bit sharper. lcdlegacy has heavier colour fringing, might be ok with freetype 35, but no good with 40. If you were on e-ink for example, you'd likely use lcdnone because e-ink doesn't have subpixels so it basically uses the whole pixel instead of an individual rgb stripe that makes up a pixel. So, again with e-ink if you set lcdnone, you also need to set rgba below to none because there is no colour with e-ink so you want greyscale.
hintstyle also has 4 options. hintnone, hintslight, hintmedium and hintfull. medium is broken and you wouldn't want to avoid using hinting with older truetype fonts.. (so again, this does depend on which fonts you're using).. so, hintslight is probably best for most people as it hints only on the vertical axis and not horizonal axis. hintfull does both vert and horiz and is what is used for the oldest microsoft heavily hinted fonts like arial and times.
rgba is for subpixel.. if you set none as the value there, then it will be greyscale. If you're ok with some subtle colour fringing, then use the pixel order of your monitor. Most of them are rgb. but not all!
There are many many combinations. You can spend all day on this. You can make it look like various different versions of Windows too or Mac, or even something different.. but you also need to be mindful of which fonts you're using as different generations were produced with certain expectations for rendering.
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
<dir>~/.fonts</dir>
<match target="font">
<edit name="lcdfilter" mode="assign">
<const>lcdlight</const>
</edit>
</match>
<match target="font">
<edit mode="assign" name="hinting">
<bool>true</bool>
</edit>
</match>
<match target="font">
<edit mode="assign" name="hintstyle">
<const>hintfull</const>
</edit>
</match>
<match target="font">
<edit mode="assign" name="rgba">
<const>rgb</const>
</edit>
</match>
<match target="font">
<edit mode="assign" name="antialias">
<bool>false</bool>
</edit>
</match>
</fontconfig>