Text and fonts are just not right in most modern apps

TL;DR

Fonts in many apps render poorly. Blurry, inconsistent, thin, frail, hairy, and ultimately hard to read especially compared to Windows, macOS, Android and iOS. I’ve tried numerous configs, tweaks, and even patching and recompiling software, to no avail. Screenshots/demos are at the end.

Preamble

This is a long post to save your and my time with common solutions. The reason it’s this long is to provide as much context as possible. I ask that before you give any advice, you read through it completely.

I am aware there are a couple other posts about this issue dotted around on the internet, but they are all either ancient or dead and inactive, and perhaps lacking in detail.

I am posting this in the Newbie forum simply because I don’t know any better place for it. I’m not familiar with the EndeavourOS forum. Feel free to nudge me elsewhere if this isn’t right or too big. I’m not that much of a Newbie; I may not use Linux on the desktop that often, but I know my way around it to an extent.

The problem

Every now and again, as a person who dislikes Windows and macOS for many valid reasons, I like to give Linux a shot. EndeavourOS has been wonderful to me in all other regards, from ease of installation to stability to not getting in the way. However, font rendering, honestly speaking, is horrible. This isn’t necessarily an EndeavourOS problem, and I am not blaming anyone, but It’s disappointing and frustrating to have a desktop OS that is seemingly incapable of rendering text nicely. See demos at the end of my post.

This happens to a very wide variety of software - I have this issue with:

  • Falkon
  • Firefox
  • Ungoogled Chromium
  • Google Chrome
  • Vivaldi
  • Microsoft Edge
  • Discord
  • Telegram (until more messing with various font configuration files)
  • Spotify
  • Visual Studio Code

And I’m not sure, but perhaps also GTK apps like EasyEffects and Mission Control are also affected. Their fonts certainly look worse than included KDE apps like System Settings, where font rendering seems perfect.

There are so many more common apps that are simply bad to look at. This is enough to generally discourage me from using my computer, since the issue is also exacerbated by my own eyesight. This is all on KDE Plasma, but I also observed this under GNOME. I haven’t tried more DEs, but this definitely seems like a deeper rooted issue than a DE bug.

I understand that this might just be a browser engine problem. After all, Chromium owns us all… Except, it happens on Firefox, too, with no real way to fix it there either.

It looks broken enough that no reasonable person should chuck it up to “different font rendering” and “don’t try to turn Linux into Windows”. This is broken, and incorrect, and it can be better as observed in some apps. The issue is most apparent on dark backgrounds and light text which is small in size. By small, I do not mean tiny, I mean like the text you are reading right now.


Environment

KDE Plasma 6.3.5 on Wayland (same on X, fwiw)

  1. My display is not HiDPI - most people don’t have those. That is not to say it’s low-resolution, 3440x1440 is perfectly adequate for displaying text. Its scaling is set to 100%.
  2. All common fonts, including proprietary such as Arial or Times New Roman, are present and installed.
  3. In /etc/profile.d/freetype2.sh:
export FREETYPE_PROPERTIES="cff:no-stem-darkening=0 autofitter:no-stem-darkening=0 type1:no-stem-darkening=0 t1cid:no-stem-darkening=0"
  1. In various places around the system, anywhere where it’s available, I’ve set my fonts to be rendered with RGB subpixel rendering enabled, with slight hinting. I’ve been fighting this for weeks, so I’ve probably set everything there is to be set. This allowed Telegram, for example, to look as good or better than Windows, with perfect sharpness, font weight consistency and general “niceness”, and I’m still not sure what I did to make it be like that.
  2. I may occasionally have themes or color schemes applied. Rest assured, they don’t actually affect the font rendering much, it’s still just as broken without them, and it was like that from the moment I booted into the freshly-installed OS.

This is far from an inferior or inadequate setup. I am not looking for answers in the vein of “just get a higher density monitor bro”.

Things I’ve tried

There are so many it’s hard to list accurately.

  1. For stem darkening - I am well aware it is not considered correct without properly implemented “gamma stuff”, but it makes fonts marginally thicker which just as marginally helps me read.
  2. For SK_GAMMA_EXPONENT and such (see here) in Chromium, recompiling it with various values does not alleviate the issue much at all. The fonts may become thicker or thinner, but are typically just as inconsistent. Patching the browser binary directly to include different LCD filters with a script I can’t find the source for seemed like the first thing to remotely help at first, but in reality it didn’t seem to resolve the core issue of inconsistent coloring and opacity, only mask it by “making everything look so bad it’s not noticeable”.
  3. For various flags, etc, I’ve probably tried them all, like disabling Fontations. Nothing changes.
  4. For replacing fonts with libre ones, this is outside of the issue entirely. Let me reiterate, the issue is not the fonts and glyphs themselves, it’s how they are rendered. And this happens to all fonts, even system-ui and such.
  5. For patching freetype, it’s the same as with patching browser binaries - it changes the look a bit, not actually fixing the problem.

Demo

Please view the screenshot below in 100% pixel-perfect scaling. Direct your attention to how frail and hairy the fonts on Linux are. Look at how inconsistent every letter’s stem and curve within each word is.

According to DevTools, the fonts are loading correctly and are the same - Arial. As you can see below, they are the same font, just rendered differently. Linux/Vivaldi on the top here, scaled:

This is just one example. See below for how rough Reddit’s sidebar looks on Linux (right), vs Windows (left).

Remedy

My knowledge about font rendering is very limited - I am just an end user.
But look what happens when I adjust the levels in an image manipulation program:


Looks better, doesn’t it? The stem of the “h” in “Technology” is a bit bright but it’s certainly better than it used to be. I’m not sure what I’m adjusting here but 2.2 seems to be a sweet spot - am I applying gamma correction here? I’m not sure; probably.

And now let’s clip the shadows a bit so it’s more or less just the text that’s affected:

This is miles better! It’s so much easier to read!

Personal remarks

Most of how I interact with a computer is reading and writing. I am writing this on the problematic system, and it is genuinely giving me a real headache because of how hard I have to try to read. When I can’t read, I can’t interact with the system. When fonts are, simply put, annoying, it’s a massive distraction from doing any work or consuming any content. My eyesight is pretty poor, as well, due to astigmatism I struggle with light-on-dark text as is, but I’m not willing to get a headache from a bright UI. This issue makes everything so, so much worse for me.

I understand that most people just don’t care, everyone I’ve asked basically told me they’re blind to the difference. I’m not, and I really hope my post pushes someone to propose and implement some sort of solution. Linux is infinitely hackable and open, it’s baffling that this is an issue in 2025. It’s one of the last unsolvable walls before I can seriously start choosing Linux instead of Windows in my boot menu every day.

To the last image demo, here’s a 100% scaling screenshot. I couldn’t include it in the OP due to the limit on attachments.

And for Telegram, look how amazing this looks

Hello and welcome

I’m not sure no-stem-darkening=0 option is the best solution. In my case it works, because the resolution of my screen is low, about 82 dpi, it makes the text thinner/less blurry.

By default the resolution of the fonts is 96 dpi, in Xfce I can adjust it, I guess there is a setting like this in KDE too.

To be honest the difference is marginal for me. It makes light text ever so slightly thicker for me. Tell me more about the DPI thing, my monitor is around 109 PPI. I haven’t really encountered dedicated options to set that, and I’m not sure what it would do apart from changing all fonts’ size - which is not something I want.

DPI (dots per inch) or PPI (pixels per inch) is the same, maybe the font rendering will be better if you can set the DPI/PPI of the font at 109 as your screen.

edit: you can’t set the font DPI in KDE anymore.

I don’t think that’s relevant since it would basically be scaling everything. The fonts are the same size in my screenshots, just the Windows ones are rendered better

I mean this DPI scaling is only for fonts :

Yeah, that has been removed from KDE. Interesting discussion about that here:

I still don’t think it’s relevant, as changing the DPI for fonts would simply make them larger or smaller. That’s really all that changing the DPI would accomplish. In my screenshots, the fonts remain the exact same size between OSes, but only EndeavourOS is broken. Therefore, size, or how many pixels the font is spread across, isn’t the issue at play here, and would be a remedy for the symptoms rather than an actual solution.

1 Like

What I can see in your demos is the Windows font is a bit taller and bolder. Linux has a poor reputation regarding fonts rendering, problem is some applications have their own rendering, which make it worse for comparison.

Unless you want to stick to Arial on Linux, you’d better search for a font that looks good on Linux.

If I zoom on your message above, it looks like this, with Redhat Display font :

It’s not really a problem of being bolder or taller for me, rather the fact that the letters themselves are inconsistent and stems and lines sometimes appear way brighter (or darker) than they should. That’s the real broken part. I ask again to please view all my demos at exact 100% pixel-to-pixel scaling, otherwise it becomes exponentially harder to notice the very real issue.

Shape and thickness are excusable and explained by differing font engines between OSes, so long as they are consistent in the system (which they are, currently), such details are not very visible. But fonts looking like they’ve been partially lifted off my screen with a piece of scotch tape isn’t easily ignored, IMO.

I’m pretty sure that is in fact Arial in my demos, as I said I loaded all the Windows fonts in so it’s not a matter of missing fonts, it’s strictly the rendering. FWIW fonts are pretty much perfect in KDE itself and I guess some Qt apps like Telegram, including with Noto Sans or whatever the default one is today in Plasma; good fonts can certainly be done on Linux and they don’t have to be Arial for that. From what I read about the issue across decade-old forum posts with no replies, “Chromium is to blame” is the predominant notion, because a lot of apps use it, but Firefox does this too, I’m very confused as to what issues to monitor and when, if ever, to expect a fix.

And yeah, of course zooming or HiDPI displays resolve it or make it nearly invisible, but that’s not how most people, including me, use their computers. I’m reading text at 100% scale and so do most other people.

You are posting about an issue which interests me as well. I was about to post something related, but it fits better here:

I am double-booting EnOS with Kubuntu, and Ubuntu has a far superior font handling in all applications. I am frankly jealous, because I like EnOS more. It’s best seen with a firefox instance.

Could you try (K)Ubuntu and see if it fixes your issues partly or fully?

And if you can confirm: How can we get the Ubuntu font rendering transferred to EnOS?

If I remember, Ubuntu use a modified Freetype with their own patch. Unless you get the sources and create an Arch package, I don’t see a more easy way to do it.

I zoomed to show how clean it was, because zooming font rendering can show how bad it can be, I’m fine with 100%.

What about this? ttf-ubuntu-font-family

I meant Freetype as the font rendering software, but I’ve seen some people saying the Ubuntu fonts gives a better experience.

1 Like

I don’t think fonts play a role here. They use the same fonts as others do, except the Ubuntu logo fonts. I would bet it’s the freetype rendering engine plus their settings. And their settings for these things shouldn’t be underestimated; they copy the freetype stuff from Debian which is not as good at font rendering as Ubuntu is.

Here are Ubuntu’s changes: Change log : freetype package : Ubuntu
And yeah as I said, the problem isn’t the fonts themselves but their rendering.

But I see the same issue, here is Kubuntu Firefox on the left:

And here’s Vivaldi on Kubuntu on the left:

It’s a little better, I guess, but that might just be chucked to display differences or slight scaling since this is a VM. It’s just as noticeable.

It’s worth noting that this issue is most visible with light text on dark backgrounds. I prefer using dark mode everywhere so it’s really quite annoying