One thing that used to be possible with Freetype was configuring how "heavy" hinting was: I remember the time when autohinted fonts looked the best with "light" hinting. They were smooth, non-bold and I couldn't see colour fringing either.
You could also set the RGBA vs whatever pixel layout in the same Gnome settings dialog. Easy-peasy adjustment for a VA panel.
After, it was available only in gconf/dconf or a tool like gnome-tweaks or similar.
MacOS is definitely terrible today, but I prefer Linux over Windows still.
the art of drawing pixels generally appears to elude free software. its always kind of sucked. if you're talking about compute shaders, its ok. but the moment it hits the screen, ouch!
Subpixel rendering works completely fine on Linux. I'm using it right now, using "full" hinting and "RGB" subpixel rendering. It even works completely fine with "non-integer" scaling in KDE, even in firefox when "widget.wayland.fractional-scale.enabled" is enabled.
To me one of the most influential pieces of writing about subpixel rendering and in particular an exploration of the ways Microsoft got it wrong was the writings by the late developer of Anti-Grain Geometry, Maxim Shemanarev (R.I.P.)
Though to be fair to this article, Microsoft did improve things with DirectWrite, and yes the situation on Linux is quite bad unfortunately.
Also bonus, a pretty great article here talking about gamma correctness in font rendering, an issue that is often somewhat overlooked even when it is acknowledged.
Windows has the worst font rendering of all modern operating systems. Wanting anything like Windows font rendering is insane. Windows 10 makes it near impossible to properly turn off subpixel hinting without also turning off all anti-aliasing, which on a QD-OLED screen makes for horrific color fringing. Windows 11 is better, but still pretty weak. Linux is roughly as good as Mac OS, both of which are miles better than Windows.
Mac OS dropped the subpixel garbage (it really is garbage if you're at all sensitive to fringing or use anything other than a standard LCD) in favor of high pixel density screens. Sharp, readable text and zero color fringing. This is the way.
I can't really agree with this at all. I am a very design-heavy person who has been using a Mac professionally since the x86 transition, and have very strong opinions about font rendering, color accuracy, etc. About 2 years ago, I built a beast of a Linux workstation and use it with a 5K Apple Studio Display. Everything looks flawless and pixel perfect.
I think Linux font rendering looks fine (although it has noticeably gotten better since this post was last updated in 2019) but I absolutely agree that MacOS has the worst looking font rendering. And I was using it on a genuine MacBook Pro! Discussions otherwise have convinced my that apparently font rendering just isn't objective but is opinion based
In the era of 4k screens, modern Linux distros have great font rendering and I won't take Windows as an example of "good rendering", unless font distortion because of strong hinting is a metric of quality. It is just atrocious to my eyes.
It's pretty easy to be honest: have a high-enough resolution screen, enable greyscale mode (instead of subpixel), turn off hinting. Usually only the latter has to be changed in the settings, as many Linux users still use 1080p screen that benefit from font hinting.
I keep hearing people talk about how Linux font rendering is supposedly so bad, but I simply haven't noticed any issues with it since switching from Windows on my home machine over 3 years ago.
> There is not even a hint of any consistency in the rendering either, thickness is all over the place even within a single glyph, with different strokes “sticking” together because of the lack of pixels:
Only the "H" looks even a little bit wrong to me.
> As you can see here, indeed, OS X had sub-pixel anti-aliasing in High Sierra, which provided less boldness and bluriness with somewhat better consistency in glyph thickness. However, colour fringing on High Sierra is rather apparent. Rendering is still rather blurry, closer to the FreeType auto-hinter than to what I would consider an optimal result.
The "H" looks just as wrong with and without this feature to me. Overall the new version without the feature is indeed a little bit "bolder" and "blurrier" - and given that it's white on dark grey, I'm pretty sure I prefer it that way.
> Thickness linearity between font sizes on the second image is fantastic. But compare the overall thickness at standard web font size (16px) to any other option and you will see that this comes at the cost of making everything bold by default:
Only the v35 version looks noticeably "less bold" to me here, although the autohinted version is perhaps a bit more blurry. But it's hard to imagine how "thickness linearity" could ever be accomplished without causing this sort of blurriness.
But maybe I'm just unbothered because I grew up with "luggable" Mac displays and bitmap fonts....
> With current state of Linux, it does not matter which engine you pick. They all are broken in the same way:
I searched the page for matching words (or at least letter combinations) and the actual rendered text isn't showing the same issues for me as in the screen capture.
> By the time I was updating this post in August 2019, Cairo received support for sub-pixel positioning in both xlib and image compositors. This means that GTK will soon have it too, as well as Pango and basically anything that relies on Cairo to render text. I am looking forward to the next Ubuntu LTS and might make a separate post about compiling this into the current Ubuntu LTS.
... Ah, I guess that must have happened, then.
----
On the other hand, GTK has caused me all kinds of problems. The default scrollbar theming is obnoxious, and if you fix it, it still doesn't seem to be consistently applied. Firefox does its own thing unless you look up an obscure about:config setting, and even then it still seems to mess up. GTK offers this really weird default style for window tabs(?) that required complete relearning, and that's with Cinnamon being supposedly designed for maximum Windows-alike-ness. Then there's the continued battle from GNOME to try to deny proper notifications and/or a system tray to everyone else. And don't even get me started on the file chooser.
One important detail is that fonts themselves have their own hinting rendering tables so authors can decide how fonts will be rendered on low dpi screens. This is tedious and expensive. And you guessed it many libre fonts simply dont do it right or have capacity to do it at all.
Thats why there can be quite big quality jump when you compare it to fonts from big design teams from Apple or Microsoft. Not only the font might be a bit worse, the rendering/hinting is often way worse.
Looking ar the comments it seems that it is very subjective. People seem to prefer what they are used to the most.
Fits with me - long time mac user i like Mac rendering, linux feels very similar and i like it. Windows feels like somebody is burning the fonts into lcd. It is probably more legible in tiny sizes on low pixel screens but it is too strong and not very elegant everywhere else.
> The traditional way of achieving this is through installing ttf-mscorefonts-installer or msttcorefonts. The msttcorefonts package looks like some Shenzhen basement knockoff that renders poorly and doesn’t support Unicode. I suspect that these fonts have gone through multiple iterations in every Windows release and that the versions available through the repositories must be from around Windows 95 days.
This is because these font files originate from a Microsoft initiative called "Core Fonts for the web" that ran between 1996 and 2002. Before web fonts became a thing, Microsoft wanted to make a set of broadly available fonts that web designers could assume everyone had on their computers. Because Microsoft cancelled the initiative, the redistributable versions of those fonts are stuck in time. They were last updated around 2000, and any updated versions with further improvements or added characters aren't freely redistributable.
I prefer to use non-Unicode bitmap fonts on Linux. It works fine in programs that support them; unfortunately many programs don't support them in all contexts (in some cases, bitmap fonts work in some places but not others). When I write my own programs, I try to ensure that non-Unicode bitmap fonts work.
24 comments
[ 3.1 ms ] story [ 52.6 ms ] threadYou could also set the RGBA vs whatever pixel layout in the same Gnome settings dialog. Easy-peasy adjustment for a VA panel.
After, it was available only in gconf/dconf or a tool like gnome-tweaks or similar.
MacOS is definitely terrible today, but I prefer Linux over Windows still.
https://agg.sourceforge.net/antigrain.com/research/font_rast...
Though to be fair to this article, Microsoft did improve things with DirectWrite, and yes the situation on Linux is quite bad unfortunately.
Also bonus, a pretty great article here talking about gamma correctness in font rendering, an issue that is often somewhat overlooked even when it is acknowledged.
https://hikogui.org/2022/10/24/the-trouble-with-anti-aliasin...
Just some additional reading materials if you're interested in this sort of thing.
Mac OS dropped the subpixel garbage (it really is garbage if you're at all sensitive to fringing or use anything other than a standard LCD) in favor of high pixel density screens. Sharp, readable text and zero color fringing. This is the way.
In the era of 4k screens, modern Linux distros have great font rendering and I won't take Windows as an example of "good rendering", unless font distortion because of strong hinting is a metric of quality. It is just atrocious to my eyes.
It's pretty easy to be honest: have a high-enough resolution screen, enable greyscale mode (instead of subpixel), turn off hinting. Usually only the latter has to be changed in the settings, as many Linux users still use 1080p screen that benefit from font hinting.
The sad state of font rendering on Linux - https://news.ycombinator.com/item?id=41812358 - Oct 2024 (18 comments)
The sad state of font rendering on Linux - https://news.ycombinator.com/item?id=19312404 - March 2019 (167 comments)
> There is not even a hint of any consistency in the rendering either, thickness is all over the place even within a single glyph, with different strokes “sticking” together because of the lack of pixels:
Only the "H" looks even a little bit wrong to me.
> As you can see here, indeed, OS X had sub-pixel anti-aliasing in High Sierra, which provided less boldness and bluriness with somewhat better consistency in glyph thickness. However, colour fringing on High Sierra is rather apparent. Rendering is still rather blurry, closer to the FreeType auto-hinter than to what I would consider an optimal result.
The "H" looks just as wrong with and without this feature to me. Overall the new version without the feature is indeed a little bit "bolder" and "blurrier" - and given that it's white on dark grey, I'm pretty sure I prefer it that way.
> Thickness linearity between font sizes on the second image is fantastic. But compare the overall thickness at standard web font size (16px) to any other option and you will see that this comes at the cost of making everything bold by default:
Only the v35 version looks noticeably "less bold" to me here, although the autohinted version is perhaps a bit more blurry. But it's hard to imagine how "thickness linearity" could ever be accomplished without causing this sort of blurriness.
But maybe I'm just unbothered because I grew up with "luggable" Mac displays and bitmap fonts....
> With current state of Linux, it does not matter which engine you pick. They all are broken in the same way:
I searched the page for matching words (or at least letter combinations) and the actual rendered text isn't showing the same issues for me as in the screen capture.
> By the time I was updating this post in August 2019, Cairo received support for sub-pixel positioning in both xlib and image compositors. This means that GTK will soon have it too, as well as Pango and basically anything that relies on Cairo to render text. I am looking forward to the next Ubuntu LTS and might make a separate post about compiling this into the current Ubuntu LTS.
... Ah, I guess that must have happened, then.
----
On the other hand, GTK has caused me all kinds of problems. The default scrollbar theming is obnoxious, and if you fix it, it still doesn't seem to be consistently applied. Firefox does its own thing unless you look up an obscure about:config setting, and even then it still seems to mess up. GTK offers this really weird default style for window tabs(?) that required complete relearning, and that's with Cinnamon being supposedly designed for maximum Windows-alike-ness. Then there's the continued battle from GNOME to try to deny proper notifications and/or a system tray to everyone else. And don't even get me started on the file chooser.
Thats why there can be quite big quality jump when you compare it to fonts from big design teams from Apple or Microsoft. Not only the font might be a bit worse, the rendering/hinting is often way worse.
Fits with me - long time mac user i like Mac rendering, linux feels very similar and i like it. Windows feels like somebody is burning the fonts into lcd. It is probably more legible in tiny sizes on low pixel screens but it is too strong and not very elegant everywhere else.
This is because these font files originate from a Microsoft initiative called "Core Fonts for the web" that ran between 1996 and 2002. Before web fonts became a thing, Microsoft wanted to make a set of broadly available fonts that web designers could assume everyone had on their computers. Because Microsoft cancelled the initiative, the redistributable versions of those fonts are stuck in time. They were last updated around 2000, and any updated versions with further improvements or added characters aren't freely redistributable.
Until it got more or less resolved by upstream with modernized components, and made redundant.