10

I had "WinFonts" folder in home directory including many true type fonts (.ttf) which I would like to install to be applied for use widely across Ubuntu system and apps. I need help guiding me to make this step?

Jorge Castro
  • 70,934
  • 124
  • 466
  • 653

1 Answers1

12

Installing TTF fonts system wide it's not difficult. You just need to create a directory inside one of the system font directories (you find them listed in /etc/fonts/fonts.conf), put there your *.ttf fonts and then update system font cache with fc-cache -fv (With the options -f for Force re-generation of cache files and -v for Verbose).

As suggested by @emk2203 you should put custom fonts in a subdirectory of /usr/local/share/fonts, so it's easy to tell them apart from distributor provided fonts (they are in /usr/share/fonts), and it's easier to backup or restore them if needed.

Step by step:

  1. Create your custom fonts directory:

    sudo mkdir /usr/local/share/fonts/truetype

  2. Copy your *.ttffonts there:

    sudo cp ~/myfonts/*.ttf /usr/local/share/fonts/truetype/

  3. Update system font cache:

    sudo fc-cache -fv

If you want to add more fonts later, just copy them to your /usr/local/share/fonts/truetype/ directory and update system font cache as above.

gerlos
  • 2,664
  • 1
  • 19
  • 25
  • 2
    and don't forget that extension also are case sensitive. So for example copy `TTF` files also. – SirSaleh Mar 19 '17 at 12:25
  • 1
    Right. To avoid this kind of annoying case problems, it may be a good idea to stick with a case convention for these files, i.e. use only lower case extensions. – gerlos Mar 22 '17 at 13:53
  • FYI I didn't need sudo - so perhaps try without first – ErichBSchulz Mar 15 '19 at 03:55
  • 1
    @ErichBSchulz this is because font cache are stored both system wide (in `/var/cache/fontconfig/`) and per-user (in `~/.cache/fontconfig`). If you have only one user on your system both commands will work. If you have more users, you may prefer to generate the cache once for everyone, using `sudo`. – gerlos Mar 15 '19 at 11:49
  • 1
    For a lot of reasons, it's better to use directories specifically designed to hold user- or site-specific content, instead of distributor-specific content. Put your fonts (in appropriate subdirectories) in `/usr/local/share/fonts` instead. It exists for a reason. If you decide to reinstall a system, you have everything you installed yourself in `/usr/local` for reference and backup. – emk2203 Aug 28 '22 at 05:14
  • I updated the answer including your suggestion. Thanks! – gerlos Sep 06 '22 at 07:59