Default bold fonts looks significantly worse on Fedora 40 KDE. It's very noticeable in Task Switcher, System Settings, "Open With" KDE Portal dialog etc. At first, I thought that it's something related to Plasma 6. Then I've discovered that the same font look normal on other distros with Plasma 6.x (e.g., openSUSE Krypton, KDE Neon Testing). Also, on Fedora 40, other similar font, Open Sans Bold, looks a lot like Noto Sans Bold on Fedora 39.
I've attached screenshots from VMs so you can see the difference. Please notice: - Excessively heavy/thick/fuzzy category headers in System Settings - how much Noto Sans Bold rendering on Fedora 40 differs from both Open Sans Bold (on the same system) and Noto Sans Bold on Fedora 39.
For now, I have no idea of what caused this regression. I didn't spot any major changes in google-noto-fonts, fontconfig or kde-settings.
P.S. On a side note, I've noticed that on both Fedora 39 and Fedora 40, in System Settings, "Sub-pixel rendering" is set to "Note" by default ("XftSubPixel=none" in ~/.config/kdeglobals). I find it weird since: - KDE Plasma defaults to "RGB" (you can see it with enabled "Highlight Change Settings" option in System Settings) - "kde-settings" package provides file "/etc/fonts/conf.d/10-sub-pixel-rgb-for-kde.conf"
Can you check if cleaning the font cache fixes this:
fc-cache -rf
Can you check if cleaning the font cache fixes this: fc-cache -rf
That doesn't help. Just to make sure it's not a local issue, I've tried booting https://dl.fedoraproject.org/pub/fedora/linux/development/40/Spins/x86_64/iso/ and saw the same regression. I've added another screenshot from the Live session which may highlight regression better.
So I've found an actual issue and the workaround.
it turns out, QT versions prior to 6.7 had issues with rendering variable fonts.
Fedora 40 KDE/Kinoite have such fonts installed by default (package "google-noto-sans-vf-fonts"): - /usr/share/fonts/google-noto-vf/NotoSans[wght].ttf - /usr/share/fonts/google-noto-vf/NotoSans-Italic[wght].ttf
If I delete them, system starts using fonts from /usr/share/fonts/google-noto/ and the issue is gone. But for Fedora Kinote it's not an option.
My current workaround is to set QT env flag and restart echo 'QT_NO_SYNTHESIZED_BOLD=1' | sudo tee -a /etc/environment.d/QT_FLAGS.conf
echo 'QT_NO_SYNTHESIZED_BOLD=1' | sudo tee -a /etc/environment.d/QT_FLAGS.conf
This issue is already fixed upstream but only for QT v6.7+ (https://bugreports.qt.io/browse/QTBUG-112136)
For QT 5.15 Fedora already has the downstream patch (https://bugzilla.redhat.com/show_bug.cgi?id=2179854)
So maybe we need this too @jgrulich for Qt 6.6?
Metadata Update from @aleasto: - Issue assigned to aleasto
Meh, rebase is all but trivial (probably the reason why upstream didn't port it to 6.6) and 6.7 is coming soon anyways
I've just tried Kinoite Rawhide (pre-41) and this issue is still there (despite QT being 6.7.1 now).
Old workaround works:
sudo mkdir -p /etc/environment.d/ && echo 'QT_NO_SYNTHESIZED_BOLD=1' | sudo tee -a /etc/environment.d/QT_FLAGS.conf
@nicolasfella @ngraham do you know anything about this?
I remembered I've just been using QT_NO_SYNTHESIZED_BOLD=1 on my system to work around this.
QT_NO_SYNTHESIZED_BOLD=1
Is that something we can ship?
Sure, we can add it to kde-settings.
Hehe well the question was more about whether it is safe to ship; i.e. what are the drawbacks?
Note that we're also already on Qt 6.7 now, so this might be a moot point.
From few comments above:
And indeed I could also reproduce on Qt 6.7 at that time.
Still happening in:
Operating System: Fedora Linux 42 KDE Plasma Version: 6.4.4 KDE Frameworks Version: 6.17.0 Qt Version: 6.9.1 Kernel Version: 6.15.9-201.fc42.x86_64 (64-bit) Graphics Platform: Wayland Processors: 12 × AMD Ryzen 5 3600 6-Core Processor Memory: 32 GiB of RAM (31.3 GiB usable) Graphics Processor: AMD Radeon RX 7600