Hacker News new | past | comments | ask | show | jobs | submit login

This is a great post. I love messing with fonts on Linux, but I ended up with settings that work great for me years ago, so I don't do it much any more. (The game changer was when many of the infinality patches were rolled into fontconfig, so you don't need to build it yourself any more to get great rendering.)

The most important takeaways if you're on Linux:

1. Make sure you have autohint=false (except for individually chosen fonts that might need it). You don't want the renderer ignoring the individual font's hinting information and trying to do it itself: results are usually quite bad.

2. Make sure you have the correct subpixel rendering for your screen (usually rgb) and enable the lcdfilter. I prefer "lcdlight". Comparison of different lcdfilter settings here: http://www.spasche.net/files/lcdfiltering/

3. Consider disabling hinting entirely. I hate it. On a high DPI screen, you don't need hinting at all, because the edges of a glyph will already align very closely with the pixels. On a low DPI screen, especially as you get down closer to 96 dpi, the amount of distortion needed to align the font with the grid completely mangles it. You might think there's a sweet spot where hinting makes sense, but I've never seen one.

The article actually has a picture illustrating this beautifully: look how much better the unhinted rendering is than the hinted one! https://venam.nixers.net/blog/assets/fun_with_fonts/ftdiff_v...

If you do disable hinting, you should also change your desktop environment's default fonts to a family that has very good unhinted pixel alignment even at small sizes. I use Adobe's "Source" family, and it looks fantastic, even at my desktop's 10pt default size.

The last example you provided is very helpful, thanks. I'm surprised that the unhinted rendering is so good.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact