Home Fonts Install Nerd Fonts To Add Glyphs In Your Code On Linux

Install Nerd Fonts To Add Glyphs In Your Code On Linux

By sk
Published: Updated: 135.3K views

This brief tutorial explains what is Nerd Fonts project, how to install Nerd Fonts in Linux and how to add glyphs (icons and symbols) in your code or simply print the icons in the shell with Nerd Fonts.

Nerd Fonts - The developer targeted patched fonts

Nerd Fonts is a project to create patched fonts. For those wondering, a patched font is a font that has a bunch of icons patched into it. Nerd Fonts takes popular programming fonts and patches them with a large number of glyphs (icons).

The glyphs are added from popular iconic fonts such as Font Awesome, Devicons, Font Logos, Material Design Icons, Powerline Symbols, Octicons, Weather Icons and many others.

Nerd Fonts currently includes 50+ patched and ready to use best developer fonts. All the patched fonts have 3,600+ icons and symbols combined from popular icon sets.

The Nerd Fonts project also has a Font Patcher script which allows you to create your own customized patched fonts. It is a free and open source project hosted in GitHub.

Install Nerd Fonts in Linux

Installing Nerd Fonts is as same as you normally would install fonts on Linux. Download your preferred nerd font from the official Nerd Fonts download page.

Extract the downloaded zip file and copy the fonts to your system's fonts folder. The location of your fonts folder varies depending on the Linux distribution you use.

In Debian-based systems like Ubuntu and its derivatives, copy the font files to /usr/share/fonts/ or /usr/local/share/fonts/ location to install fonts for all users i.e. system-wide.

If you want to install fonts for a particular user, copy the fonts to ~/.local/share/fonts/ location.

I wanted to install fonts for my current user account only, so I copied the fonts files to ~/.local/share/fonts/ directory.

fonts location for a specific user in Ubuntu
fonts location for a specific user in Ubuntu

You can also do it from command line like below. Use wget or curl to download the font files. Extract the zip file using unzip and then copy the font files to the fonts directory using cp or mv commands.

$ wget https://github.com/ryanoasis/nerd-fonts/releases/download/v2.1.0/Hermit.zip
$ unzip Hermit.zip
$ cp ~/Downloads/Hermit/Hurmit*.otf ~/.local/share/fonts/

If you have a lot of fonts, you can use sub-directories to organize the font collection.

Nerd Fonts are also packaged for Arch Linux and available in AUR. Install any nerd font using an AUR helper program, for example Paru or Yay, like below:

$ yay -S nerd-fonts-hermit

Or,

$ yay -S nerd-fonts-hermit

After copying or installing the fonts, run the following command to build font information cache files for applications using fontconfig for their font handling.:

$ fc-cache -fv

Sample output:

/usr/share/fonts/type1: caching, new cache contents: 0 fonts, 2 dirs
/usr/share/fonts/type1/gsfonts: caching, new cache contents: 35 fonts, 0 dirs
/usr/share/fonts/type1/urw-base35: caching, new cache contents: 35 fonts, 0 dirs
/usr/local/share/fonts: caching, new cache contents: 0 fonts, 0 dirs
/home/sk/.local/share/fonts: caching, new cache contents: 68 fonts, 0 dirs
[...]
Build font information cache files using fc-cache command
Build font information cache files using fc-cache command

If you have added the fonts to system-wide (i.e. /usr/share/fonts/ or /usr/local/share/fonts/ location), run:

$ sudo fc-cache -fv

Similarly, download the other fonts and move them all to system's fonts directory and update the font cache.

Verify if a specific font is added or not from command line using ls and grep commands:

$ ls ~/.local/share/fonts/ | grep Hurmit

Sample output:

Hurmit Bold Nerd Font Complete Mono.otf
Hurmit Bold Nerd Font Complete Mono Windows Compatible.otf
Hurmit Bold Nerd Font Complete.otf
Hurmit Bold Nerd Font Complete Windows Compatible.otf
Hurmit Light Nerd Font Complete Mono.otf
Hurmit Light Nerd Font Complete Mono Windows Compatible.otf
Hurmit Light Nerd Font Complete.otf
Hurmit Light Nerd Font Complete Windows Compatible.otf
Hurmit Medium Nerd Font Complete Mono.otf
Hurmit Medium Nerd Font Complete Mono Windows Compatible.otf
Hurmit Medium Nerd Font Complete.otf
Hurmit Medium Nerd Font Complete Windows Compatible.otf

List all available fonts in your system using command:

$ fc-list

Add Glyphs in Your Code with Nerd Fonts

Once the Nerd fonts are added to your system, you can literally use them anywhere on your system. I tried Nerd Fonts in Deepin Terminal, GNOME terminal, gedit, and Gimp. All worked just fine and I can be able to add different types of icons and symbols in the text and the code.

Go to the Nerd Fonts cheatsheet where you can find a lot of icons and symbols and pick a icon you want to use. There is a Search bar available to quickly search for a specific icon or symbol. To show all available icon sets, place the mouse cursor in the search bar and hit ENTER.

Nerd Fonts cheatsheet page
Nerd Fonts cheatsheet page

To copy an icon or symbol, just hover the mouse over it and click Icon or Class or Hex code to copy it.

Copy icons and symbols from Nerd Fonts cheatsheet
Copy icons and symbols from Nerd Fonts cheatsheet

Paste the copied icon wherever you want.

You can also copy the class and paste the code in your CSS or HTML code. Here are two examples for your reference.

I really <i class="nf nf-fa-heart"></i> <i class="nf nf-custom-vim"></i>
I use <i class="nf nf-linux-archlinux"></i> btw.

If you don't want to copy the glyphs from the Nerd Fonts cheatsheet web page, use the Nerd Fonts scripts to directly print the icons/symbols in your shell and then copy them to your code or wherever you want.

Download the scripts provided here and save them in ~/.local/share/fonts/ directory. I am going to download Font Linux icons using command:

$ wget https://raw.githubusercontent.com/ryanoasis/nerd-fonts/master/bin/scripts/lib/i_linux.sh -P ~/.local/share/fonts/

Source the download script:

$ source ~/.local/share/fonts/i_linux.sh

Verify if you can able to print the icons in the Terminal using any one of the following commands:

$ echo $i_linux_archlinux
$ echo $i_linux_centos
$ echo $i_linux_debian
$ echo $i_linux_fedora
$ echo $i_linux_ubuntu
Print icons and symbols in Shell using Nerd Fonts scripts
Print icons and symbols in Shell using Nerd Fonts scripts

As stated already, there are currently 50+ patched fonts available to use. If your favorite font isn't already patched, you can patch it using Font Patcher script made by the Nerd Fonts author. For more details, refer the project links given below.

Resources:

You May Also Like

6 comments

Joe November 25, 2021 - 9:21 am

What is the solution if it doesn’t work?
E.g. I just get a box

Reply
sk November 25, 2021 - 11:42 am

It works for me on Fedora and Ubuntu. Please post the issue in the project’s github repository.

Reply
Bruno April 24, 2022 - 6:48 pm

Thank you so much! It worked perfectly

Reply
Suresh May 22, 2023 - 6:32 pm

How to do it windows

Reply
sk May 22, 2023 - 6:48 pm

I don’t use Windows at the moment. So I can’t help. My apologies.

Reply
Scott January 16, 2025 - 7:43 am

Thank you so much. It helped me install in openSUSE

Reply

Leave a Comment

* By using this form you agree with the storage and handling of your data by this website.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

This website uses cookies to improve your experience. By using this site, we will assume that you're OK with it. Accept Read More