OpenSUSE fonts – The sleeping beauty guide

As a whole, the Linux desktop isn’t the most polished family of products in the universe. Due to the chaotic nature of software products, there’s a nonlinear correlation between quality and the amount of effort required to achieve it, and there just isn’t enough human power to fix it all. It’s easy to get to that 90% complete milestone, but then it becomes harder and harder and finally, impossible. Among all the little bugs and issues, fonts reign supreme.

Recently, I tested openSUSE Leap 42.3, and it turned out to be a very … incomplete distro. I spent ages fixing it, and finally got it working in due order. But then, if you compare the quality of fonts there to a very similar Plasma-powered system like Kubuntu 17.04, the differences are huge and appalling. Today, I shall endeavor to resolve this issue. Follow me.

Here we go again

Of course, this is nothing new. I’ve talked about fonts time and time again. Fedora was one of my guinea pigs, and it suffered from a severe case of bad contrast and low quality of fonts for a long time. We’re finally seeing some good results in the most recent Fedora 26 Workstation. In the Plasma world, things are equally messy. Most KDE distros come with a less-than-optimal font configuration, starting with font color. I’ve discussed this at length in my State of Plasma report. Not a pretty sight.

It gets worse when you take into account all the different bits and pieces – default font type and size choice, anti-aliasing settings and the marked difference between manual tweaks and system defaults, the huge variance among applications in how they are rendered on the screen, depending on the font selection, anti-aliasing and hinting settings, DPI, and even the graphics card backend. Then, the sub-pixel rendering and LCD filter also take their toll.

None of which really explains the awful state of fonts in openSUSE Leap 42.3 I was really amazed, in a bad way, at what the distro offered and how it rendered on the screen. The browser text looked like something you’d see on a 2003 Linux server that may be running a GUI frontend by accident. Everything was too pale, too grainy. And I just didn’t have this amount of trouble with Kubuntu, also running Plasma.

Anti-aliasing and proprietary fonts

I decided to try to solve the issue on the user level first. Perhaps the default Noto Sans font choice isn’t optimal for openSUSE – although it works well in other Plasma desktops, so it’s unlikely. Indeed, I wasn’t able to find a suitable replacement. I tried Droids Sans, which I’m using in Fedora, as well as the new Roboto Slab and Fira Sans fonts from the upcoming System76 POP! collection (we’ll discuss this separately), and the desktop still look weird.

Default fonts

Making font changes

Different fonts

Testing different fonts, including Liberation Sans, Noto Sans, Roboto Slab, and Fira Sans; none of these offer suitable results on the default openSUSE plasma desktop, with default Noto actually offering the most rounded if incomplete experience.

I then tried to override the system-default anti-aliasing settings with my own – having seen this provide improved application font quality across a range of non-KDE programs, more about that later, too – using slight hinting and the RGB color profile. This in turn made my browser text actually readable.

Fonts, manual anti-aliasing settings

Manual anti-aliasing settings (RGB, slight hinting); almost usable.

Fonts settings

Since I wasn’t able to resolve this in a peaceful manner, I fired YaST > Fonts, and tried to make global changes there. The wider Internet suggests anti-aliasing, full auto-hinting, RGB sub-pixel rendering, and the LCD default filter. This is true for pretty much any distro out there.

Global font settings

Sub-pixel rendering sounds simple, but there’s a whole world of patents, copyright and licensing behind it.

When I tried to set this, openSUSE complaining that the sub-pixel rendering that I wanted requires proprietary libraries that are not enabled by default due to various licensing reasons. Well, that’s annoying, for many reasons. One, why not allow users to download them if they need them. After all, the distro does let you download media codecs and Adobe Flash plugin, so why not this one, too. Two, if anything, there should be a one-click installer to allow this in a seamless way.

New libraries

Luckily, I found out that the GeckoLinux team provides the necessary libtypefree6 packages as part of their own system set, and you can configure a separate repo and install the libraries. Which is exactly what I did, again, using a one-click installer (direct link). Technically, what you need to do is configure a new repository, install the two relevant libraries, and change the settings to what I’ve described above earlier. Log out and then log back in to see the effect.

zypper addrepo http://download.opensuse.org/repositories/home:/namtrac:/subpixel/openSUSE_Factory
zypper install libfreetype6 libfreetype6-32bit
New, patched fonts

This looks so much nicer. You can actually read the text without feeling that your eyes are melting.

And this, FINALLY, made the big difference! I had normal-looking fonts. Perhaps not ideal, but approaching a comfort level that is expected. I could finally begin using the distro without my eyes going bad after a few minutes. This is such a significant improvement – and also, on behalf of openSUSE, such a wasted opportunity to make the distro shine.

Side by side comparison

Side by side comparison: Left, manual anti-aliasing settings (RGB, slight hinting); Right, patched freetype libraries, with the same configuration. Take a look at the openSUSE Leap 42.3 review for what it looks like with anti-aliasing system defaults and unpatched fonts. Sigh. Click to zoom in.

Final result, very decent:

OpenSUSE, ready

Conclusion

Pandora’s box of fonts is one of the many ailments of the distro world. As long as we do not have standards, and some rather strict ones at that, we will continue to suffer from bad fonts, bad contrast, bad ergonomics, and in general, settings that are not designed for sustained, prolonged use. It’s a shame, because humans actually use computers to interface with information, to READ text and interpret knowledge using the power of language. It’s the most critical element of the whole thing.

OpenSUSE under-delivers on two fonts – anti-aliasing and hinting options that are less than ideal, and then it lacks the necessary font libraries to make a relevant, modern and pleasing desktop for general use. All of this can be easily solved if there’s more attention, love and passion for the end product. After all, don’t you want people to be spending a lot of time interacting, using and enjoying the distro?

Hopefully, one day, all this will be ancient history. We will be able to choose any which system and never worry or wonder how our experience is going to be impacted by the choice of drivers, monitors, software frameworks, or even where we live. For the time being, if you intend on using openSUSE, this little guide should help you achieve a better, smoother, higher-quality rendering of fonts on the screen, allowing you to enjoy the truly neat Plasma desktop to the fullest. Oh, in the openSUSE review, I promised we would handle this, and handle it we did! Take care.


Cover Image: Letter Soup by Bo de Visser for Freeimages.com.

  • Maikel Grep

    Have you also tried this with OpenSuse Tumbleweed as in my opinion this problems does not exist in that version, but on the other hand I’m not an expert in those things.
    Is it possible for you to test this with OpenSuse Tumbleweed and post your results here ?

    • Dedoimedo

      I could try that. Let’s see what gives.
      Dedoimedo

  • muadib

    A good guy has ported the Ubuntu font style to openSUSE
    https://build.opensuse.org/project/show/home:gldickens3