Found this article, explaining the issue as a whole. Is there nothing that can be done about it, as things currently stand, after all? And no one really seems to care? As it’s quite troublesome, irritating and fairly confusing to read through - especially coming from Windows and Mac devices.
I am aware of Manjaro’s article on the subject - yet it appears to be dealing mostly with “infinality” mode, which was abandoned by its developer and later incorporated into the whole FreeType project.
And it doesn’t help with the spacing mismatch at all.
Looks like it was a bit too early to set that as solved.
Fonts don’t work as expected - with hinting enabled, letters get pushed around for no reason, exactly the same way the article of the previously mentioned articled mentioned:
Without any hinting, everything is in place - yet it feels blurry, it’s hard and painful to look at, and it puts so much strain on the eyes that I can physically feel them getting tense in my skull. Working for more than 15 minutes in front of such a device of pain and fuzziness is just plain impossible.
I just don’t get it. What’s missing? Why is working with fonts in Linux such a horrific PITA?
Well, you initial issue was about Manjaro Hello, and i did agree with your observations, hence i opened an issue with what i thought would be fit to solve the Manjaro hello description font issue …
What you present now is simply put, Linux font rendering problem … To be honest, all screenshots you shared (from Windows or Linux) all look blurred on my end, so is hard to get to a conclusion.
We could start by investigating it. Share: inxi -Fazy
Or share it according to this fine [HowTo] Request support
And I’m grateful for that - it was the first thing I saw when I logged into the installed system, and I couldn’t really imagine that it would be a persistent thing across all applications.
Using a Ubuntu Live USB right now. The difference is night and day. Even email can be written without a horrible strain on the eyes:
A bit more Googling made me stumble upon this bit here.
In particular, this was somewhat surprising:
Ubuntu (Gnome) uses PANGO for font render engine. Which is one of the best font engine. I don’t know about KDE/QT. Another thing, KDE does not allow us to set fractional value for font size like 10.5pt. 10.5pt is a standard side for 96dpi monitor. All font gets proper height and weight with 10.5pt in Gnome. But in KDE there’s no 10.5pt. You have to select 10pt or 11pt. Which makes no sense.
Is that really the case? Does KDE relying on FreeType, as opposed to Pango, could make this much difference? I really love the customizability of KDE, but if I have to sacrifice my eye sight for it - there’s no way I’m keeping it there. Probably giving a go to Manjaro GNOME could work a bit better, then.
Ubuntu doesn’t have it preinstalled, and I can’t find it in apt - still, most likely it has nothing to do with the system and the drivers, and everything to do with the actual rendering engine.
After carefully zooming in into the text on KDE, I noticed the FreeType (as opposite to Ubuntu’s / Windows’ engine) prioritizes perfect font scaling, instead of readability. The fonts actually look perfect, at least with a default grayscale antialiasing and no/little hinting. The problem is that fonts that are perfectly scaled down are incredibly difficult to read. If there’s no sacrifice made in this regard for the sake of readability, the issue will persist - likely forever. Not sure where to start solving this, though.
Wasn’t quite planning to rewrite any rendering engine - let alone one that the whole OS depends on - when I started looking into switching to Linux and Manjaro in particular. I’m a tinkerer for sure, but I’ve also got a bunch of business to take care of besides my beloved distro of choice in the moment.
And the same thing is most likely true for most people considering switching as well.
On my side I don’t notice such issues in my KDE installation. When I check the settings I disabled the sub-pixel thing in System Settings, I think it was on my previous monitor I noticed it was making text better, and I kept this setting like that to this day.
Can you make a screenshot of this page so I have something to compare to?
The weird thing is that from afar Manjaro looks the best. It seems to nail all the individual font details, all the curves, all the shapes, and smooth them out as necessary. From nearby, however, it remains the most straining and uncomfortable rendering to work with. I can’t even pinpoint why exactly it is the case.
Manjaro gives off an “RGB-sque” kind of vibe even in grayscale mode. Yet close up they look exactly the same. There might be an issue with the Intel PWM thing. Or drivers. Some people in the eye strain thread have pointed out that using prop NVidia firmware seemed to create more issues for them than help them.
Never had a reason to wish I’d own a slightly more outdated laptop with AMD drivers before now.
Guess posting a bit more about my system could help. Rebooting again from W10 into MJ.
Slightly changed the script to make it “read-only”:
.sh
#!/usr/bin/env bash
function usage() {
cat << EOF
intelpwm FREQ [PCH_RAWCLK_FREQ_REG [BLC_PWM_PCH_CTL2_REG]]
FREQ desired PWM frequency in Hz
PCH_RAWCLK_FREQ_REG PCH raw clock register name or offset
BLC_PWM_PCH_CTL2_REG backlight control register name or offset
EOF
}
function reg_check() {
# If the register is a mnemonic name and not an offset, make sure that it is
# known to intel_reg utility. Unknown mnemonic likely means, that we are on a
# different generation of hardware that may have different registers layout
printf "%d" "$1" 1>/dev/null 2>&1 || \
intel_reg list | grep "$1" 1>/dev/null 2>&1 || \
(>&2 echo "Register $1 is not defined on this hardware" && false)
}
function reg_read() {
# this assumes fixed position of the value in intel_reg output
# so far this has been the case though
intel_reg read "$1" | cut -c51-60
}
FREQ=$1
PCH_RAWCLK_FREQ_REG=$2 # ${2:-PCH_RAWCLK_FREQ}
BLC_PWM_PCH_CTL2_REG=$3 # ${3:-BLC_PWM_PCH_CTL2}
if [ -z "$FREQ" ]; then
usage
exit 1
fi
reg_check "${PCH_RAWCLK_FREQ_REG}" || exit 1
reg_check "${BLC_PWM_PCH_CTL2_REG}" || exit 1
PCH_FREQ="$(reg_read ${PCH_RAWCLK_FREQ_REG})"
BLC_CTL2="$(reg_read ${BLC_PWM_PCH_CTL2_REG})"
CYCLE="${BLC_CTL2:6:4}"
HEX=$(printf "0x%08x" $((1000000*PCH_FREQ/128/FREQ)))
PERIOD="${HEX:6:9}"
>&2 echo "To write 0x${PERIOD}${CYCLE} to register ${BLC_PWM_PCH_CTL2_REG} execute "
echo "intel_reg write ${BLC_PWM_PCH_CTL2_REG} x${PERIOD}${CYCLE}"
It recommended me to change the register (whatever that is) from the original 0x0001be6d to 0x6000be6d, 0x4000be6d, 0x1000be6d - you get the idea. Turns out the only acceptable options, besides the full brightness at 0x0001be6d is 0x0002, 0x0003, etc - and if you try to switch back from 5 to 1, screen simply shuts down completely. I have no clue what’s actually going on, but with 75% bright 2 things are a bit easier.
…
Actually, I’m going back to 0x0001. It’s more of a 66% brightness. And it doesn’t seem to be connected to the frequency in any way whatsoever. Perhaps on my system those bytes stand for brightness, not PWM.
i don’t wonder anymore, using all your displays on a intel-uhd is a mess. this internal gpu isn’t capable. use your nvidia as permanent-primary-gpu instead and your good.
I didn’t reply yet because I was trying to figure out what was really wrong, what I was not seeing and so on. To this day I can’t really say I see what the issue is with font. Maybe I could feel font rendering different between Windows and Linux OS, but I can’t do proper comparison.
Lenovo x1 carbon 9th generation. Tried fiddling with pwm using arch’s intelpwm tool. Scary - no --help option when running intelpwm and immediately left a computer with no back light control and regularly switching between backlight OFF and ON 100%. Luckily, destroying the file /etc/intelpwm.conf returned my computer to its old state. Should have done more homework I guess.
Well, I have an intel gfx on my laptop and I don’t see those issues. Using KDE with font rendering with subpixel slight hinting.
@igor are you sure your problems don’t occur only on GTK applications? For GTK I use the file ~/.Xresources (which also affect KDE apps, although I do have options selected in system settings (except dpi).
[mbb@mbb-laptop ~]$ cat .Xresources
#if __has_include(".extend.Xresources")
#include ".extend.Xresources"
#endif
! ^ The above lines are no comments!
! Leave them as they are if a file ~/.extend.Xresources is being used on your system.
! config can be added there or also here below.
! For comments use "!"
!Xft.dpi: 112.6
Xft.dpi: 113
Xft.antialias: true
Xft.autohint: false
Xft.hinting: true
Xft.rgba: rgb
Xft.hintstyle: hintslight
Xft.lcdfilter: lcddefault
!XTerm*background: #2b2b2b
!XTerm*foreground: #e7e7e7
!XTerm*pointerColor: #16A085
!XTerm*faceName: Fixed
!XTerm*faceSize: 11
And in top of this, I still have the file ~/.config/fontconfig/fonts.conf
I honestly don’t know what to tell you guys - the fonts just feel “off”. There’s an ever-subtle fuzziness, blurriness, and smoothing that is nearly imperceptible to the naked eye. Nothing feels wrong right away, yet after half an hour in front of the laptop my eyes begin to hurt and I get a headache. W10 doesn’t give me such a problem. Nor did Mac, the last time I was using it in the customer support office I was working in.
Thinking it was all a trick in “magic” factory settings, I even installed Kubuntu on my machine. Manjaro refused to boot, always getting stuck at the black screen, saying something about the hard drive and it being full to 588515 / 49919931 or something. First 15-30 minutes are fine. Afterwards - it’s a literal headache.
I don’t want to ruin my eyesight just for the sake of open source. Not sure if it’s about my laptop, Intel GPU graphics, NVidia drivers giving issues, or me being so used to the crisp, clean fonts of W - but I can’t do it.
Might grab one of them “Ubuntu”-certified laptops by Dell or System76 in the future. Perhaps with the right machine, things aren’t going to be that bad. But as it currently stands - it’s just impossible.
I’m not the only one bringing up this issue, and it definitely seems to have quite little to do with a particular distro and much more to do with the overall open source libraries being used to tackle font rendering.
Even when in-browser and regular interface fonts look decent, editing any plain office document - in OnlyOffice or equivalent - is just an eye sore. Jumbled letters, jagged edges, misplaced letters. Jesus.
I also have Figma designs to edit. How can I possibly rely on Linux in this regard if none of what it’s going to show me is going to appear the way it’s going to appear to any regular Mac / Win user?
…
Anyway, thanks everyone. Hopefully this will get sorted out soon. Take care.
My fonts at 400% on KDE. I’m using Inter as my system font and in Firefox. The fonts issue was always the one thing that pulled me back to Windows during my 30 years of computing. Nowadays, I actually think that Linux has equal or even superior font rendering.