The fonts situation in Ubuntu 20.04 is not great. I am not refering to the way fonts are displayed - that is a situation that has improved a lot over the years. I am talking about the selection of available fonts. Everything works and fonts look good out of the box, that is not the problem.

Howerver there are WAY to many fonts that are just needless noise when picking fonts in LibreOffice, GIMP, etc. Maybe this is just down to the font selector design. I am not sure of the real root or ultimate solution, but practically speaking if you want to work with fonts much at all you’re going to want to address this somehow.

Second, I am a bit baffled that there is no clear way to add, remove, or otherwise manage fonts! Honestly, this feels like such an easily remedied oversight. At first when I was looking into this I thought there was no way to install fonts at all. In fact, the included font-viewer can install a font for you, but that feature is easy to miss, plus the UX is not great in that you have to open each font file individually to do it - most fonts come in a set as a zip file, and adding each variant this way is tedious. Removing or disabling fonts is not something it can handle that I know of.

Fonts are not ‘software’ in my mind, but it turns out using the “Ubuntu Software” app is the way users are expected to add and remove fonts? Maybe Canonical expect people to use snaps to install fonts too 🙄…

It is genuinely puzzling to me that these fonts issues aren’t even usually covered in the plethora of things to do after install posts even when when the list goes up to 50 items!

Remove un-used fonts

I will cover merely disabling fonts below, and that is probably the safer approach, but if you use primarily latin based fonts you can bulk remove a bunch of redundant non-latin font sets you have no use for with no ill effects. Don’t worry, websites that would maybe have text in these languages should still work, other font packages like fonts-droid-fallback still remain and cover a lot of character range. Plus any of these packages are easily re-installed if you do ever happen to need them after all.

sudo apt remove fonts-noto-cjk fonts-kacst-one fonts-lao fonts-lklug-sinhala fonts-sil-abyssinica fonts-sil-padauk fonts-tibetan-machine fonts-thai-tlwg fonts-lohit-guru fonts-pagul fonts-navilu fonts-logit-taml-classical

In fact there are many more that you could probably purge but this should get the list in font pickers down to a resonable set. There will be a few other dependencies and stuff that can be cleaned up after those font files are gone.

sudo apt autoremove

To flush the font cache database a reboot is the surest route, but you can also try to do it manually. I had mixed results with the manual way. May need to do this if you install new fonts as described below too.

sudo fc-cache -fv

Now for a font manager

Though you can manage fonts directly via files in the ~/.fonts directory (which I guess you would have just magically know about?! SMH) I recommend adding a capable font manager. Which oddly enough will add files into its own secret font folder ~/.local/share/fonts not the previously mentioned secret user font folder. Whatever. It’s a mess.

By this point it is my strong opinion that https://fontmanager.github.io/ should be in the default install of Ubuntu. It is not like it is a big package to include. So just get it already.

sudo apt install font-manager

Now, it claims it “is NOT a professional-grade font management solution”. Though I am unsure what else it would need to qualify as such.

You can add multiple fonts without extracting each font file individually

Disabling fonts is as easy as unticking the checkbox next to it. You can also uninstall user installed fonts in Font Manager, but not system level ones. Have to resort back to the package manager for that (and might I recommend Synaptic Package Manager at this point sudo apt install synaptic)

Some actual fonts to add

If you work with documents or design files that come from Windows users and they are using some of the default fonts from there you can avoid some headaches by having the mscorefonts. You’ll have a fun license agreement/EULA pop up thing if you go for this. These fonts would also be part of ubuntu-restricted-extras or ubuntu-restricted-addons so skip this step if you already have those.

sudo apt install ttf-mscorefonts-installer

If you want some handy icons the FontAwesome set is available in the Ubuntu repo

sudo apt install fonts-font-awesome

You can use the character picker in LibreOffice to pick items from that font set BTW.
Character picker dialog in LibreOffice

If you spend much time writing code like me, while the included Ubuntu Mono is decent, it can be nice to have some more choices of fonts which are spefically helpful for coding. Here is a short list of a few good code fonts.

Fira-Code is a nice one and is available in the repos too

sudo apt install fonts-firacode

My personal favorite lately is Victor Mono

Finally, a resource of for many more quality fonts