Skip to main content
  1. All Posts/

nerd-fonts

Fonts Fonts

Releases   |   Fonts   |   Font Patcher   |   Wiki Documentation   |   Stickers   |   VimDevIcons

Nerd Fonts is a project that patches developer targeted fonts with a high number of glyphs (icons). Specifically to add a high number of extra glyphs from popular ‘iconic fonts’ such as Font Awesome, Devicons, Octicons, and others.
The following Sankey flow diagram shows the current glyph sets included:

Diagram created using @SankeyMATIC

Important Notices

Table of Contents

TL;DR
Installation Options

Features

Developer / Contributor

Project Motivation
Additional Info

TL;DR

Nerd Fonts takes popular programming fonts and adds a bunch of Glyphs.
There is also a font patcher available if your desired font isn’t already patched.
For more high level information see the wiki. If you are looking for the Vim plugin see VimDevIcons ➶.

Various Download Options for Fonts

If you…

Features

  • A FontForge Python script to patch any font
    • Includes an option to create Monospaced (fixed-pitch, fixed-width) or double-width (non-monospaced) glyphs
    • For more details see the Font Patcher section
  • 51 already patched font families
  • Over 1,444,400 unique combinations/variations of patched fonts (more details)
  • Over 2,824 glyphs/icons combined (more details)
    • Current glyph sets include: Powerline with Extra Symbols, Font Awesome, Material Design Icons, Weather, Devicons, Octicons, Font Logos (Formerly Font Linux), Pomicons, Codeicons
  • Monospaced (fixed-pitch, fixed-width) or double-width (non-monospaced) glyphs version of each font

    • This refers to the Nerd Font glyphs themselves not necessarily the Font as a whole
  • A Developer/Contributor provided bash script to re-patch all the fonts

Glyph Sets

🔍 🔍 You can now search for glyphs easily on NerdFonts.com via the Cheat Sheet
See Wiki: Glyph Sets and Codepoints for more details

Icon names in shell

See Wiki: Icon names in shell

Patched Fonts

Font Name
Font Name and Repository
ver
*RFN
Status

3270 Nerd Font
3270
3.0.1
NO

Agave
Agave
10
NO

Anonymice Nerd Font
Anonymous Pro
1.002
YES

Arimo
Arimo
1.32
NO

Aurulent Sans Mono Nerd Font
Stephen G. Hartke

NO

BigBlueTerminal
VileR

NO

Bitstream Vera Sans Mono Nerd Font
Bitstream Inc
1.1
NO

Blex Mono
IBM Plex Mono
1.0.0
YES

Caskaydia Cove Nerd Font
Cascadia Code
2111.01
YES

Code New Roman Nerd Font
Sam Radian
2.0
NO

Cousine Nerd Font
Cousine
1.211
NO

DaddyTimeMono
DaddyTimeMono
1.009
NO

DejaVu Sans Mono Nerd Font
DejaVu
2.37
NO

Droid Sans Mono Nerd Font
Ascender Corp
1.00-113
NO

Fantasque Sans Nerd Font
Fantasque Sans
1.8.0
NO

Fira Code Nerd Font
Fira Code
6.0
NO

Fira Mono Nerd Font
Fira
3.111
NO

Go Mono Nerd Font
Go-Mono
2.008
NO

Gohu Nerd Font

Gohu TTF,Gohu

2.0
NO

Hack Nerd Font
Hack
3.003
NO

Hasklug Nerd Font
Hasklig
1.2
YES

Heavy Data Mono Nerd Font
Vic Fieger
1
NO

Hurmit Nerd Font
Hermit
1.21
YES

iM-Writing
iA-Writer
Dec 2018
YES

Inconsolata Nerd Font
Inconsolata
3.000
NO

Inconsolata Go Nerd Font
InconsolataGo
1.013
NO

Inconsolata LGC Nerd Font
Inconsolata LGC
1.3
NO

Iosevka Nerd Font
Iosevka
11.0.1
NO
#83

JetBrains Mono
JetBrains Mono
2.251
NO

Lekton Nerd Font
Lekton
34
NO

Literation Mono Nerd Font
Liberation
2.00.5
YES

Lilex Nerd Font
Lilex
1.000
NO

Meslo Nerd Font
Meslo
1.21
NO

Monofur Nerd Font
Tobias B Koehler
1.0
NO

Monoid Nerd Font
Monoid
0.61
NO

Mononoki Nerd Font
Mononoki
1.2
NO

M+ (MPlus) Nerd Font
M+ Fonts
1.063
NO

Noto
Noto
div
NO

OpenDyslexic
OpenDyslexic
2.001
NO

Overpass
Overpass
div
NO

ProFont (Windows tweaked) Nerd Font
ProFont
2.3
NO

ProFont (x11) Nerd Font
ProFont
2.2
NO

ProggyClean Nerd Font
Tristan Grimmer
2004/04/15
NO
Imperfect

Roboto Mono
Roboto Mono
2.0
NO

Sauce Code Nerd Font
Source
2.030
YES

Shure Tech Mono Nerd Font
Share Tech Mono
1.003
YES

Space Mono Nerd Font
Space Mono
1.001
NO

Terminess Nerd Font
Terminus Font
4.40.1
YES

Tinos
Tinos
1.23
NO

Ubuntu Nerd Font
Ubuntu Font
0.83
NO

Ubuntu Mono Nerd Font
Ubuntu Font
0.80
NO

Victor Mono
Victor Mono
1.4.1
NO

*RFN = Reserved Font Name

Combinations

  • Over 1,485,000 unique variations/combinations (Power Set) of patched fonts:
    • 50 patched font typefaces
    • 719 patched font families
    • 2,876 ‘complete’ variations/combinations
    • '1,485,410' possible variations/combinations
      • 1,488,286 total calculated combinations (2,876 + 1,428,110)
  • Combinations for each font are any combination of Variations

Variations

  • no flags given (defaults to only Seti-UI + Custom and Devicons)
  • double (variable/proportional) or single (fixed/monospaced) width glyphs
  • Font Awesome
  • Font Awesome Extension
  • Material Design Icons
  • Weather
  • GitHub Octicons
  • Font Logos (Formerly Font Linux)
  • Powerline Extra Symbols
  • IEC Power Symbols
  • Pomicons
  • Codicons
  • Windows Compatibility

Font Installation

Option 1: Download and Install Manually

Best option for quickly getting a specific individual font.

Download the specific patched font of your choice

Option 2: Release Archive Download

Best option if you want an archive or complete font family of variations (Bold, Italic, etc.).

Fonts are available for download as packages in the latest release

Option 3: Install Script

Best option if you want to automate installing or for use in scripts.

Note: Requires cloning the repo as of now

All fonts:

  • Installs all the patched Fonts (Warning: This is a lot of Fonts adding up to a large size)
./install.sh

or, in Powershell (Windows only):

./install.ps1

Single font:

  • Installs a single Font of your choice
./install.sh <FontName>
./install.sh Hack
./install.sh HeavyData

or, in Powershell (Windows only):

./install.ps1 <FontName>
./install.ps1 Hack
./install.ps1 HeavyData
./install.ps1 FiraCode, Hack
./install.ps1 CascadiaCode -WindowsCompatibleOnly
./install.ps1 DejaVuSansMono -WhatIf

Option 4: Homebrew Fonts

Best option if on macOS and want to use Homebrew.

All fonts are available via Homebrew Cask Fonts on macOS (OS X)

brew tap homebrew/cask-fonts
brew install --cask font-hack-nerd-font

Option 5: Clone the Repo

Best option for full control, all or some of the fonts, or contributing to development.

A full clone of this repository is not required nor efficient (mostly due to Repository size) if you are simply only interested in a limited set of fonts.
If you do want to clone the entire repo be sure to shallow clone:

git clone --depth 1

If you want to clone a sub-directory, use git sparse-checkout. The following example requires Git v2.26:

git clone --filter=blob:none --sparse git@github.com:ryanoasis/nerd-fonts
cd nerd-fonts
git sparse-checkout add patched-fonts/JetBrainsMono

Option 6: Ad Hoc Curl Download

Option if you want to use the curl command or for use in scripts.

Linux

mkdir -p ~/.local/share/fonts
cd ~/.local/share/fonts && curl -fLo "Droid Sans Mono for Powerline Nerd Font Complete.otf" https://github.com/ryanoasis/nerd-fonts/raw/HEAD/patched-fonts/DroidSansMono/complete/Droid%20Sans%20Mono%20Nerd%20Font%20Complete.otf

Note: deprecated alternative paths: ~/.fonts

macOS (OS X)

cd ~/Library/Fonts && curl -fLo "Droid Sans Mono for Powerline Nerd Font Complete.otf" https://github.com/ryanoasis/nerd-fonts/raw/HEAD/patched-fonts/DroidSansMono/complete/Droid%20Sans%20Mono%20Nerd%20Font%20Complete.otf

Option 7: Unofficial Chocolatey or Scoop Repositories

Option for Windows and wanting to use Chocolatey or Scoop.

Chocolatey users can download fonts published to the Chocolatey Community Repository (CCR):

choco install nerd-fonts-hack

Scoop users can download fonts using the Scoop bucket for Nerd Fonts:

scoop bucket add nerd-fonts
scoop install Hack-NF

Option 8: Unofficial Arch User Repository (AUR)

Option for Arch Linux and wanting to use AUR packages.

The following fonts are available via AUR packages on Arch Linux:

The list is not complete, but you can search for a complete list here.

Option 9: Patch Your Own Font

The option for patching your own font or fully customizing the patched font.

Use the provided Python command line script to generate a patched font from your own font to get the extra new glyphs
See: Font Patcher for usage

  • use this option if you do not want to use one of the fonts provided
  • you will still need to copy the generated font to the correct font directory on your system

Patching the font of your own choosing for use with the VimDevIcons ➶:

  • requires: Python 2 (or Python 3), python-fontforge package (version 20141231 or later, see
    the install instructions)
  • alternative install method on OSX: brew install fontforge
  • alternative method on Linux: Using the AppImage
  • alternative method using Docker: Docker Hub
  • Usage:

    ./font-patcher PATH_TO_FONT
    
  • Alternative usage: Execute the patcher with the FontForge binary using the script flag:

    fontforge -script font-patcher PATH_TO_FONT
    
  • Patching fonts using the AppImage:
    Note: chmod u+x the AppImage after download. All supplied paths need to be absolute and an explicit output path is required! If everything is located in the same directory, you can use the $PWD shorthand.

    ./FontForge.AppImage -script $PWD/font-patcher $PWD/BaseFont.ttf -out /tmp
    
  • Patching fonts with Docker:

    docker run -v /path/to/fonts:/in -v /path/for/output:/out nerdfonts/patcher [OPTIONS]
    

Full options:

usage: font-patcher [-h] [-v] [-s] [-l] [-q] [-w] [-c] [--careful]
                    [--removeligs] [--postprocess [POSTPROCESS]]
                    [--configfile [CONFIGFILE]] [--custom [CUSTOM]]
                    [-ext [EXTENSION]] [-out [OUTPUTDIR]]
                    [--glyphdir [GLYPHDIR]] [--makegroups]
                    [--variable-width-glyphs]
                    [--progressbars | --no-progressbars] [--also-windows]
                    [--fontawesome] [--fontawesomeextension] [--fontlogos]
                    [--octicons] [--codicons] [--powersymbols] [--pomicons]
                    [--powerline] [--powerlineextra] [--material] [--weather]
                    font

Nerd Fonts Font Patcher: patches a given font with programming and development related glyphs

* Website: https://www.nerdfonts.com
* Version: 2.2.2
* Development Website: https://github.com/ryanoasis/nerd-fonts
* Changelog: https://github.com/ryanoasis/nerd-fonts/blob/-/changelog.md

positional arguments:
  font                  The path to the font to patch (e.g., Inconsolata.otf)

options:
  -h, --help            show this help message and exit
  -v, --version         show program's version number and exit
  -s, --mono, --use-single-width-glyphs
                        Whether to generate the glyphs as single-width not double-width (default is double-width)
  -l, --adjust-line-height
                        Whether to adjust line heights (attempt to center powerline separators more evenly)
  -q, --quiet, --shutup
                        Do not generate verbose output
  -w, --windows         Limit the internal font name to 31 characters (for Windows compatibility)
  -c, --complete        Add all available Glyphs
  --careful             Do not overwrite existing glyphs if detected
  --removeligs, --removeligatures
                        Removes ligatures specificed in JSON configuration file
  --postprocess [POSTPROCESS]
                        Specify a Script for Post Processing
  --configfile [CONFIGFILE]
                        Specify a file path for JSON configuration file (see sample: src/config.sample.json)
  --custom [CUSTOM]     Specify a custom symbol font. All new glyphs will be copied, with no scaling applied.
  -ext [EXTENSION], --extension [EXTENSION]
                        Change font file type to create (e.g., ttf, otf)
  -out [OUTPUTDIR], --outputdir [OUTPUTDIR]
                        The directory to output the patched font file to
  --glyphdir [GLYPHDIR]
                        Path to glyphs to be used for patching
  --makegroups          Use alternative method to name patched fonts (experimental)
  --variable-width-glyphs
                        Do not adjust advance width (no "overhang")
  --progressbars        Show percentage completion progress bars per Glyph Set
  --no-progressbars     Don't show percentage completion progress bars per Glyph Set
  --also-windows        Create two fonts, the normal and the --windows version

Symbol Fonts:
  --fontawesome         Add Font Awesome Glyphs (http://fontawesome.io/)
  --fontawesomeextension
                        Add Font Awesome Extension Glyphs (https://andrelzgava.github.io/font-awesome-extension/)
  --fontlogos, --fontlinux
                        Add Font Logos Glyphs (https://github.com/Lukas-W/font-logos)
  --octicons            Add Octicons Glyphs (https://octicons.github.com)
  --codicons            Add Codicons Glyphs (https://github.com/microsoft/vscode-codicons)
  --powersymbols        Add IEC Power Symbols (https://unicodepowersymbol.com/)
  --pomicons            Add Pomicon Glyphs (https://github.com/gabrielelana/pomicons)
  --powerline           Add Powerline Glyphs
  --powerlineextra      Add Powerline Glyphs (https://github.com/ryanoasis/powerline-extra-symbols)
  --material, --materialdesignicons, --mdi
                        Add Material Design Icons (https://github.com/templarian/MaterialDesign)
  --weather, --weathericons
                        Add Weather Icons (https://github.com/erikflowers/weather-icons)

Examples

./font-patcher Droid Sans Mono for Powerline.otf
./font-patcher Droid Sans Mono for Powerline.otf -s -q
./font-patcher Droid Sans Mono for Powerline.otf --use-single-width-glyphs --quiet
./font-patcher Droid Sans Mono for Powerline.otf -w
./font-patcher Droid Sans Mono for Powerline.otf --windows --quiet
./font-patcher Droid Sans Mono for Powerline.otf --windows --pomicons --quiet

./font-patcher Inconsolata.otf --fontawesome
./font-patcher Inconsolata.otf --fontawesome --octicons --pomicons
./font-patcher Inconsolata.otf

./FontForge.AppImage -script /tmp/nerdfonts/font-patcher /tmp/nerdfonts/CascadiaMonoPL-Semibold.ttf --fontawesome -out /tmp
./FontForge.AppImage -script $PWD/font-patcher $PWD/CascadiaMonoPL-Semibold.ttf --octicons -out $HOME

docker run --rm -v ~/myfont/patchme:/in -v ~/myfont/patched:/out nerdfonts/patcher
docker run --rm -v ~/Desktop/myfont/patchme:/in -v ~/Desktop/myfont/patched:/out nerdfonts/patcher --fontawesome

Gotta Patch ’em All Font Patcher!

  • for Contributor or Developer use
  • re-patches all fonts in the unpatched directory:

    ./gotta-patch-em-all-font-patcher!.sh
    
  • can optionally limit to specific font name pattern:

    ./gotta-patch-em-all-font-patcher!.sh Hermit
    

Contributing

See contributing.md

Unstable File Paths

⚠️ Warning: File paths may change based on releases (especially major version bumps)
Reference the release branch and not the master branch because paths are subject to change for each release

  • For example:
    • ✅ Use: https://github.com/ryanoasis/nerd-fonts/blob/0.9.0/patched-fonts/Hermit/Medium/complete/Hurmit%20Medium%20Nerd%20Font%20Complete.otf
    • ❌ Instead of: https://github.com/ryanoasis/nerd-fonts/blob/master/patched-fonts/Hermit/Medium/complete/Hurmit%20Medium%20Nerd%20Font%20Complete.otf

Other Good Fonts to Patch

Non exhaustive list of fonts that would benefit from being patched but are not included in Nerd Fonts due to their license (proprietary, commercial, etc.):

Project Motivation

See Wiki: Project Purpose

Changelog

See changelog.md

License

See LICENSE