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 :)
So glad this helped. I use AI a lot for many things, especially those things that require a detailed explanation from me (which googling normally doesn't get right). It is like talking to a super duper googler who can search the whole web for you in seconds and put together a good answer. I've had Claude and chatGPT help me fix so many critical issues on my distro. They almost always get it right. I also use them to generate any reparative code that I need. I also make them do all css and HTML (no one has time to for that shit. Lol). They also help with producing logic if you're stuck on a part of your project. Even if they don't get it right, they give you a good explanation and and a better idea on what to do. One thing they all failed at 100% at a time is negative unit tests. For some reason, I've never been able to get them to give me one successful negative test.
i now use it at the start of every single project and task that i work on.
Greatly speeds up things. I love it. I've been faster at my projects. I had a project at work that would have taken my at least 1.5 months, and I built in 3 weeks.