Degraded system font quality

Sorry I am very new to Arch Linux so I am not aware of many things so forgive me for this weird question but it's really bothering me now.

I have been using Kali Linux for over two years and have had no problem with that. But a few months ago, I have switched to Garuda Linux. I was accustomed to the GNOME desktop environment but now I am using KDE Plasma so I might have messed up somethings in my settings.

Roughly a month ago I updated my Linux computer using pacman GUI software and all seemed fine. All the packages were upgraded and nothing was changed much. But after sometime I could notice that the edges of the system fonts seemed to be degraded in quality.

There is a multi-coloured outline to the text. I have also noticed that this only occurs with system fonts. Fonts in Google Chrome and Konsole seems to be fine. But on using other applications like pacman GUI, these fonts again get degraded.

Look at the screenshot given below to see the difference

Now if I zoom-in at the text in Google Chrome ... it looks like this (see the screenshot provided below)

this looks neat but when I zoom-in at the text in the date [ provided by the system ] ... the quality appears to be degraded. There is some weird outline here. (see the screenshot provided below)

You can clearly see the degraded pixel quality.

What should I do to fix this? I have no idea whats wrong

If you need any logs then let me know.

Thank you

Try other plasma theme to confirm it is not about theming.
Try default breeze for example.

1 Like

I switched the "global theme" in system settings to defaults (Breeze)
That indeed worked. Now I don't have have that degraded pixels.

However I am curious, why is it happening with the "Modern" theme.
Is there anything I can do to fix it?

Do you need any logs for more information?

And when I switch to "Breeze Dark" I again get that degraded quality.
Any idea why?

We need your hardware data, post inxi as shown below.

Read

please
and post

inxi -Fxxxza

as text!

Even if you personally think it is unnecessary.

and
:slight_smile:

1 Like

Here you go

$ inxi -Fxxxza
System:    Kernel: 5.9.14-zen1-1-zen x86_64 bits: 64 compiler: N/A 
           parameters: BOOT_IMAGE=/@/boot/vmlinuz-linux-zen root=UUID=b871cf83-85ab-4ed0-a452-4e8f8a2edec6 rw 
           rootflags=subvol=@ quiet splash loglevel=3 
           Desktop: KDE Plasma 5.20.4 tk: Qt 5.15.2 info: latte-dock wm: kwin_x11 dm: SDDM Distro: Garuda Linux 
Machine:   Type: Desktop System: HP product: HP All-in-One 24-f0xx v: N/A serial: <filter> Chassis: type: 13 serial: <filter> 
           Mobo: HP model: 8446 v: 0000 serial: <filter> UEFI [Legacy]: AMI v: F.15 date: 05/07/2019 
CPU:       Info: 6-Core model: Intel Core i5-8400T bits: 64 type: MCP arch: Kaby Lake family: 6 model-id: 9E (158) 
           stepping: A (10) microcode: DE L2 cache: 9216 KiB 
           flags: avx avx2 lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx bogomips: 20399 
           Speed: 3201 MHz min/max: 800/3300 MHz Core speeds (MHz): 1: 3221 2: 3201 3: 3201 4: 3167 5: 3258 6: 3201 
           Vulnerabilities: Type: itlb_multihit status: KVM: VMX disabled 
           Type: l1tf mitigation: PTE Inversion; VMX: conditional cache flushes, SMT disabled 
           Type: mds mitigation: Clear CPU buffers; SMT disabled 
           Type: meltdown mitigation: PTI 
           Type: spec_store_bypass mitigation: Speculative Store Bypass disabled via prctl and seccomp 
           Type: spectre_v1 mitigation: usercopy/swapgs barriers and __user pointer sanitization 
           Type: spectre_v2 mitigation: Full generic retpoline, IBPB: conditional, IBRS_FW, STIBP: disabled, RSB filling 
           Type: srbds mitigation: Microcode 
           Type: tsx_async_abort status: Not affected 
Graphics:  Device-1: Intel UHD Graphics 630 vendor: Hewlett-Packard driver: i915 v: kernel bus ID: 00:02.0 chip ID: 8086:3e92 
           Device-2: NVIDIA GM108M [GeForce MX110] vendor: Hewlett-Packard driver: N/A alternate: nouveau bus ID: 01:00.0 
           chip ID: 10de:174e 
           Device-3: Cheng Uei Precision Industry (Foxlink) HP TrueVision HD Camera type: USB driver: uvcvideo bus ID: 1-5:4 
           chip ID: 05c8:03c7 serial: <filter> 
           Display: x11 server: X.Org 1.20.10 compositor: kwin_x11 driver: intel display ID: :0 screens: 1 
           Screen-1: 0 s-res: 1920x1080 s-dpi: 96 s-size: 508x285mm (20.0x11.2") s-diag: 582mm (22.9") 
           Monitor-1: eDP1 res: 1920x1080 hz: 60 dpi: 92 size: 530x300mm (20.9x11.8") diag: 609mm (24") 
           Message: Unable to show advanced data. Required tool glxinfo missing. 
Audio:     Device-1: Intel Cannon Lake PCH cAVS vendor: Hewlett-Packard driver: snd_hda_intel v: kernel 
           alternate: snd_soc_skl,snd_sof_pci bus ID: 00:1f.3 chip ID: 8086:a348 
           Sound Server: ALSA v: k5.9.14-zen1-1-zen 
Network:   Device-1: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet vendor: Hewlett-Packard driver: r8169 v: kernel 
           port: 4000 bus ID: 02:00.0 chip ID: 10ec:8168 
           IF: enp2s0 state: down mac: <filter> 
           Device-2: Realtek RTL8821CE 802.11ac PCIe Wireless Network Adapter vendor: Hewlett-Packard driver: N/A 
           modules: rtw88_8821ce port: 3000 bus ID: 03:00.0 chip ID: 10ec:c821 
           Device-3: TP-Link TL-WN722N v2/v3 [Realtek RTL8188EUS] type: USB driver: r8188eu bus ID: 1-1:2 chip ID: 2357:010c 
           serial: <filter> 
           IF: wlp0s20f0u1 state: up mac: <filter> 
Drives:    Local Storage: total: 931.51 GiB used: 12.39 GiB (1.3%) 
           SMART Message: Unable to run smartctl. Root privileges required. 
           ID-1: /dev/sda vendor: Seagate model: ST1000DM003-1SB102 size: 931.51 GiB block size: physical: 4096 B 
           logical: 512 B speed: 6.0 Gb/s rotation: 7200 rpm serial: <filter> rev: HPH4 scheme: GPT 
Partition: ID-1: / raw size: 465.00 GiB size: 465.00 GiB (100.00%) used: 12.39 GiB (2.7%) fs: btrfs dev: /dev/sda5 
           ID-2: /home raw size: 465.00 GiB size: 465.00 GiB (100.00%) used: 12.39 GiB (2.7%) fs: btrfs dev: /dev/sda5 
           ID-3: /var/log raw size: 465.00 GiB size: 465.00 GiB (100.00%) used: 12.39 GiB (2.7%) fs: btrfs dev: /dev/sda5 
Swap:      Kernel: swappiness: 10 (default 60) cache pressure: 75 (default 100) 
           ID-1: swap-1 type: zram size: 154.9 MiB used: 512 KiB (0.3%) priority: 32767 dev: /dev/zram0 
           ID-2: swap-2 type: zram size: 154.9 MiB used: 512 KiB (0.3%) priority: 32767 dev: /dev/zram1 
           ID-3: swap-3 type: zram size: 154.9 MiB used: 512 KiB (0.3%) priority: 32767 dev: /dev/zram2 
           ID-4: swap-4 type: zram size: 154.9 MiB used: 256 KiB (0.2%) priority: 32767 dev: /dev/zram3 
           ID-5: swap-5 type: zram size: 154.9 MiB used: 256 KiB (0.2%) priority: 32767 dev: /dev/zram4 
           ID-6: swap-6 type: zram size: 154.9 MiB used: 256 KiB (0.2%) priority: 32767 dev: /dev/zram5 
Sensors:   System Temperatures: cpu: 54.0 C mobo: N/A 
           Fan Speeds (RPM): N/A 
Info:      Processes: 247 Uptime: 29m Memory: 3.63 GiB used: 1.49 GiB (40.9%) Init: systemd v: 247 Compilers: gcc: 10.2.0 
           clang: 11.0.0 Packages: pacman: 1328 lib: 286 Shell: Zsh v: 5.8 running in: konsole inxi: 3.1.06

I hope this helps.

If you need anything else let me know. Otherwise I will manage with breeze light theme.

Update your system
5.11.11-zen1-1-zen

upd

Buy more RAM if possible.

2 Likes

I've had the same happen. Go into System Settings>Display && Monitor>Display Configuration, and re-select your screen resolution.

It was a real head-scratcher.

4 Likes

How many other places did you post this same question?

It would seem slightly rude to spread the same question across many fora and take up the time of many people.

4 Likes

This confirms it’s about theming. Also video drivers and compositor settings related.
Start from 1st suggestion

If the “Apply” button does not come available, change resolution to a different one and Apply and back to your preferred one and Apply.

Check for results and if there is no improvement, change compositor to OpenGL 2.0, or Xrender.

You may also try with disabled Blur in workspace visual effects.

The next possible thing to try is video drivers configuration, as you have dual-gpu and nvidia. This is a long story, so try the above first.

3 Likes

I was having some issues while logging-in to garuda linux forum so I had posted on Unix Stack Exchange but then later on I could log-in to this forum so I posted the question here and deleted from Unix Stack Exchange

1 Like

I tried this. The “Apply” button did not appear available on re-selecting my current resolution (1920x1080). So I changed my resolution to a different one and switched back to 1920x1080 as you suggested, but no luck in that. :frowning:

Tried switching to both of them and restarted kde using the following commands:

kquitapp5 plasmashell
kstart5 plasmashell

Still those weird pixelated fonts are appearing.

Sorry but I couldn’t find blur anywhere.

Also I forgot to mention that, now I am using the default Breeze theme and today I am again getting that degraded font quality here as well. Yesterday it was not there but today after another restart, in Breeze I can see those bad quality fonts.
Have a look at it here https://i.imgur.com/qpLp3CI.png

Clear your ~/.cache/ folder.

Blur is in effects, as explained.

4 Likes

I'm not a Garuda user but I always feel for people that have font rendering problems under Linux.

There could be multiple reasons for the multi-coloured outline of your fonts (usually called color fringing).

Could you please post the output of the following commands in the terminal?

ls /etc/fonts
ls /etc/fonts/conf.d
ls $HOME/.config/fontconfig

Cache cleared and blur disabled. Still no luck. I can still see that color fringing.

Thank you for letting me know that term. It was weird to call it by different names all the time :slight_smile:

Anyway, here is the output.

$ ls /etc/fonts
conf.avail    conf.d    fonts.conf
$ ls /etc/fonts/conf.d
00kde.conf                  30-metric-aliases.conf  46-noto-serif.conf        60-latin.conf            66-lohit-bengali.conf     66-lohit-kashmiri@devanagari.conf  66-lohit-sindhi@devanagari.conf  66-noto-serif.conf       README
10-hinting-slight.conf      40-nonlatin.conf        49-sansserif.conf         65-0-lohit-marathi.conf  66-lohit-devanagari.conf  66-lohit-konkani.conf              66-lohit-tamil-classical.conf    67-lohit-malayalam.conf
10-powerline-symbols.conf   45-generic.conf         50-user.conf              65-0-lohit-nepali.conf   66-lohit-gujarati.conf    66-lohit-maithili.conf             66-lohit-tamil.conf              69-unifont.conf
10-scale-bitmap-fonts.conf  45-latin.conf           51-local.conf             65-fonts-persian.conf    66-lohit-gurmukhi.conf    66-lohit-odia.conf                 66-lohit-telugu.conf             75-yes-terminus.conf
10-symbols.conf             46-noto-mono.conf       59-lohit-devanagari.conf  65-nonlatin.conf         66-lohit-hindi.conf       66-lohit-oriya.conf                66-noto-mono.conf                80-delicious.conf
20-unhint-small-vera.conf   46-noto-sans.conf       60-generic.conf           66-lohit-assamese.conf   66-lohit-kannada.conf     66-lohit-punjabi.conf
$ ls $HOME/.config/fontconfig
fonts.conf

Let me know if I should provide something else.

As there is a file in $HOME/.config/fontconfig, I also need to know the content of that file. You can use the command

cat $HOME/.config/fontconfig/fonts.conf

for that.

3 Likes

Here is the entire content of the file:

$ cat $HOME/.config/fontconfig/fonts.conf
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
 <match target="font">
  <edit mode="assign" name="antialias">
   <bool>true</bool>
  </edit>
  <edit mode="assign" name="hinting">
   <bool>true</bool>
  </edit>
  <edit mode="assign" name="hintstyle">
   <const>hintfull</const>
  </edit>
  <edit mode="assign" name="rgba">
   <const>rgb</const>
  </edit>
  <edit mode="assign" name="autohint">
   <bool>true</bool>
  </edit>
  <edit mode="assign" name="lcdfilter">
   <const>lcdnone</const>
  </edit>
  <edit mode="assign" name="dpi">
   <double>102</double>
  </edit>
 </match>
 <match target="font">
  <edit mode="assign" name="hinting">
   <bool>true</bool>
  </edit>
 </match>
 <match target="font">
  <edit mode="assign" name="hintstyle">
   <const>hintslight</const>
  </edit>
 </match>
 <dir>~/.fonts</dir>
 <match target="font">
  <edit mode="assign" name="antialias">
   <bool>true</bool>
  </edit>
 </match>
</fontconfig>

The other thing to check is whether the recent fontconfig update needs the conf.d symlinks to be put back into place.

/etc/fonts/conf.avail moved to /usr/share/fontconfig/conf.avail, so there are two options:

  1. ls -l /etc/fonts/conf.d and recreate any dangling symlinks (better)
  2. Put a "redirection" symlink in place, sudo ln -s /usr/share/fontconfig/conf.avail /etc/fonts/conf.avail (worse)
5 Likes

I am sorry I didn't understand.
Here's the output for the 1st option:

$ ls -l /etc/fonts/conf.d                                                                                                                                                                                              49.33.228.153  ─╯
total 196
-rw-r--r-- 1 root root 124 Oct 22 19:25 00kde.conf
lrwxrwxrwx 1 root root  44 Jun 19  2020 10-hinting-slight.conf -> /etc/fonts/conf.avail/10-hinting-slight.conf
lrwxrwxrwx 1 root root  39 Nov 13 01:05 10-powerline-symbols.conf -> ../conf.avail/10-powerline-symbols.conf
lrwxrwxrwx 1 root root  48 Jun 19  2020 10-scale-bitmap-fonts.conf -> /etc/fonts/conf.avail/10-scale-bitmap-fonts.conf
lrwxrwxrwx 1 root root  37 Jun 29  2020 10-symbols.conf -> /etc/fonts/conf.avail/10-symbols.conf
lrwxrwxrwx 1 root root  47 Jun 19  2020 20-unhint-small-vera.conf -> /etc/fonts/conf.avail/20-unhint-small-vera.conf
lrwxrwxrwx 1 root root  44 Jun 19  2020 30-metric-aliases.conf -> /etc/fonts/conf.avail/30-metric-aliases.conf
lrwxrwxrwx 1 root root  38 Jun 19  2020 40-nonlatin.conf -> /etc/fonts/conf.avail/40-nonlatin.conf
lrwxrwxrwx 1 root root  37 Jun 19  2020 45-generic.conf -> /etc/fonts/conf.avail/45-generic.conf
lrwxrwxrwx 1 root root  35 Jun 19  2020 45-latin.conf -> /etc/fonts/conf.avail/45-latin.conf
lrwxrwxrwx 1 root root  31 Dec  7 17:19 46-noto-mono.conf -> ../conf.avail/46-noto-mono.conf
lrwxrwxrwx 1 root root  31 Dec  7 17:19 46-noto-sans.conf -> ../conf.avail/46-noto-sans.conf
lrwxrwxrwx 1 root root  32 Dec  7 17:19 46-noto-serif.conf -> ../conf.avail/46-noto-serif.conf
lrwxrwxrwx 1 root root  39 Jun 19  2020 49-sansserif.conf -> /etc/fonts/conf.avail/49-sansserif.conf
lrwxrwxrwx 1 root root  34 Jun 19  2020 50-user.conf -> /etc/fonts/conf.avail/50-user.conf
lrwxrwxrwx 1 root root  35 Jun 19  2020 51-local.conf -> /etc/fonts/conf.avail/51-local.conf
lrwxrwxrwx 1 root root  38 Sep  8  2020 59-lohit-devanagari.conf -> ../conf.avail/59-lohit-devanagari.conf
lrwxrwxrwx 1 root root  37 Jun 19  2020 60-generic.conf -> /etc/fonts/conf.avail/60-generic.conf
lrwxrwxrwx 1 root root  35 Jun 19  2020 60-latin.conf -> /etc/fonts/conf.avail/60-latin.conf
lrwxrwxrwx 1 root root  37 Sep  8  2020 65-0-lohit-marathi.conf -> ../conf.avail/65-0-lohit-marathi.conf
lrwxrwxrwx 1 root root  36 Sep  8  2020 65-0-lohit-nepali.conf -> ../conf.avail/65-0-lohit-nepali.conf
lrwxrwxrwx 1 root root  43 Jun 19  2020 65-fonts-persian.conf -> /etc/fonts/conf.avail/65-fonts-persian.conf
lrwxrwxrwx 1 root root  38 Jun 19  2020 65-nonlatin.conf -> /etc/fonts/conf.avail/65-nonlatin.conf
lrwxrwxrwx 1 root root  36 Sep  8  2020 66-lohit-assamese.conf -> ../conf.avail/66-lohit-assamese.conf
lrwxrwxrwx 1 root root  35 Sep  8  2020 66-lohit-bengali.conf -> ../conf.avail/66-lohit-bengali.conf
lrwxrwxrwx 1 root root  38 Sep  8  2020 66-lohit-devanagari.conf -> ../conf.avail/66-lohit-devanagari.conf
lrwxrwxrwx 1 root root  36 Sep  8  2020 66-lohit-gujarati.conf -> ../conf.avail/66-lohit-gujarati.conf
lrwxrwxrwx 1 root root  36 Sep  8  2020 66-lohit-gurmukhi.conf -> ../conf.avail/66-lohit-gurmukhi.conf
lrwxrwxrwx 1 root root  33 Sep  8  2020 66-lohit-hindi.conf -> ../conf.avail/66-lohit-hindi.conf
lrwxrwxrwx 1 root root  35 Sep  8  2020 66-lohit-kannada.conf -> ../conf.avail/66-lohit-kannada.conf
lrwxrwxrwx 1 root root  47 Sep  8  2020 66-lohit-kashmiri@devanagari.conf -> ../conf.avail/66-lohit-kashmiri@devanagari.conf
lrwxrwxrwx 1 root root  35 Sep  8  2020 66-lohit-konkani.conf -> ../conf.avail/66-lohit-konkani.conf
lrwxrwxrwx 1 root root  36 Sep  8  2020 66-lohit-maithili.conf -> ../conf.avail/66-lohit-maithili.conf
lrwxrwxrwx 1 root root  32 Sep  8  2020 66-lohit-odia.conf -> ../conf.avail/66-lohit-odia.conf
lrwxrwxrwx 1 root root  33 Sep  8  2020 66-lohit-oriya.conf -> ../conf.avail/66-lohit-oriya.conf
lrwxrwxrwx 1 root root  35 Sep  8  2020 66-lohit-punjabi.conf -> ../conf.avail/66-lohit-punjabi.conf
lrwxrwxrwx 1 root root  45 Sep  8  2020 66-lohit-sindhi@devanagari.conf -> ../conf.avail/66-lohit-sindhi@devanagari.conf
lrwxrwxrwx 1 root root  43 Sep  8  2020 66-lohit-tamil-classical.conf -> ../conf.avail/66-lohit-tamil-classical.conf
lrwxrwxrwx 1 root root  33 Sep  8  2020 66-lohit-tamil.conf -> ../conf.avail/66-lohit-tamil.conf
lrwxrwxrwx 1 root root  34 Sep  8  2020 66-lohit-telugu.conf -> ../conf.avail/66-lohit-telugu.conf
lrwxrwxrwx 1 root root  31 Dec  7 17:19 66-noto-mono.conf -> ../conf.avail/66-noto-mono.conf
lrwxrwxrwx 1 root root  31 Dec  7 17:19 66-noto-sans.conf -> ../conf.avail/66-noto-sans.conf
lrwxrwxrwx 1 root root  32 Dec  7 17:19 66-noto-serif.conf -> ../conf.avail/66-noto-serif.conf
lrwxrwxrwx 1 root root  37 Sep  8  2020 67-lohit-malayalam.conf -> ../conf.avail/67-lohit-malayalam.conf
lrwxrwxrwx 1 root root  37 Jun 19  2020 69-unifont.conf -> /etc/fonts/conf.avail/69-unifont.conf
lrwxrwxrwx 1 root root  34 Jun 29  2020 75-yes-terminus.conf -> ../conf.avail/75-yes-terminus.conf
lrwxrwxrwx 1 root root  39 Jun 19  2020 80-delicious.conf -> /etc/fonts/conf.avail/80-delicious.conf
lrwxrwxrwx 1 root root  39 Jun 19  2020 90-synthetic.conf -> /etc/fonts/conf.avail/90-synthetic.conf
-rw-r--r-- 1 root root 967 Jun 19  2020 README

What should I do next?

Which part?

All the information necessary to fix the symlinks is present in my reply.

Also, which version of fontconfig do you have installed? It should be 2:2.13.93-4 by now, when was the last time you updated?

2 Likes