I have been raging about the font rendering on Linux for years. It just sucks. Font has jagged edges and it looks very weird. I dual-boot with windows and the font there is very nice. So, I asked Claude ai to help me and it did a great job and my font is now is actually better than windows. I wanted to share it with everyone in case you have the same issue with the font on Linux.
Here it is:
- First, install required packages:
sudo pacman -S freetype2 cairo fontconfig
2. Install better fonts:
sudo pacman -S ttf-dejavu ttf-liberation noto-fonts ttf-roboto ttf-roboto-mono ttf-droid ttf-opensans ttf-hack ttf-fira-code
I have also installed Segoe ui and Segoe UI Variable fonts and that is what I’m using now.
3. Create or edit the font configuration file:
sudo mkdir -p /etc/fonts/conf.d
sudo nano /etc/fonts/local.conf
4. Add this configuration to local.conf:
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<match target="font">
<edit name="antialias" mode="assign">
<bool>true</bool>
</edit>
<edit name="hinting" mode="assign">
<bool>true</bool>
</edit>
<edit name="hintstyle" mode="assign">
<const>hintslight</const>
</edit>
<edit name="rgba" mode="assign">
<const>rgb</const>
</edit>
<edit name="lcdfilter" mode="assign">
<const>lcddefault</const>
</edit>
<edit name="embeddedbitmap" mode="assign">
<bool>false</bool>
</edit>
<edit name="autohint" mode="assign">
<bool>true</bool>
</edit>
</match>
<!-- Increase contrast slightly for all fonts This is not mandatory and can be commented out-->
<match target="font">
<edit name="weight" mode="assign">
<const>medium</const>
</edit>
</match>
</fontconfig>
5. Create a file for FreeType settings:
sudo nano/etc/profile.d/freetype2.sh
6. Add these export commands (I found it there already, but it was commented out. Just removed the “#”):
export FREETYPE_PROPERTIES="truetype:interpreter-version=40"
7. Enable subpixel rendering: (You might get a message that says “File exist”, that’s ok. It means it was already there)
sudo ln -s /etc/fonts/conf.avail/70-no-bitmaps.conf /etc/fonts/conf.d/
sudo ln -s /etc/fonts/conf.avail/10-sub-pixel-rgb.conf /etc/fonts/conf.d/
8. Clear and regenerate font cache:
fc-cache -fv
9. For better Java application fonts:
sudo pacman -S jre-openjdk fontconfig
10. Reboot
Additional optional steps: a. For better Firefox font rendering, in about:config: Set
gfx.font_rendering.cleartype_params.rendering_mode
to 5 (This doesn’t exist in FF. You create it, set it to “number” and give it a value of 5)
Set
gfx.webrender.all
to true
b. If you use VSCode, add to settings.json:
{
"editor.fontFamily": "'Fira Code, 'Droid Sans Mono', 'monospace'",
"editor.fontLigatures": true
}
Truly hope this help someone. Share it with others if you think it will help them.
Thanks :)
Do you have some before and after screenshots? Would be interesting to look at the difference
Unfortunately, I forgot. But I can tell you that the font has really rough edges and it looked very weird. I have two 4k monitors and the font was awful on them. It now looks even better than windows on them.
KDE plasma on endeavour OS is what I’m running, btw.
“I refused treatment for my cancer based on a YouTube video and I survived!”
Formating of the configuration content under point 4 seems to have spilled out, you might have to use a triple backtick followed by newline if it’s a multiline code/content.
I appreciate you pointing that out. I used a client called photon and it was awful. So, I fixed it under the mobile app “voyager” and hopefully it’s better now? Let me know so I can dig into more.
Now it looks correct:)
i never thought to use ai for instruction on system configuration like is and this is brilliant.
i’ve used it before to give me ideas that serve as a starting place when i work on anything and now i’m going to start doing this when i want to improve my setup; thanks for making me aware of this option.
Last night my windows/linux dual boot was broken and i fixed it with instructions from chatgpt. It helped me recreate windows efi partition that i had accidentally deleted.
i prompted it the other day to find out what paperwork i need for same day registration for the election; i think it’s use for general information is better than for programming.
You might want to shrink the headers to
##
And there are quite some more formatting issues :)
Thank you for pointing that out. I’ll fix it. I used photon client and it has some real issues with styling posts.
And I’m getting downvoted for trying to help. 😂Great!
Is it better now?
Yup
Well, that really makes a difference!
Any idea if this works on Debian?
I’m not sure honestly. I have not used Debian in a long time. I don’t see why it wouldn’t. Make a backup and try it. It is all the same except the packages downloads commands.