nerd-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
-
master
branch file paths are not considered stable. Verify your repository URI references - cloning this repository is not recommended (due to Repo size) unless you are going to be contributing to development
Table of Contents
- 1 – Manual
- 2 – Release Archive Download
- 3 – Install Script
- 4 – Homebrew Fonts (macOS (OS X))
- 5 – Clone Repo
- 6 – Ad Hoc Curl Download
- 7 – Chocolatey or Scoop (Windows)
- 8 – Arch User Repository (AUR) (Arch Linux)
- 9 – Patch Your Own Font
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…
-
Option 1.
want to quickly grab an individual font download from thepatched-fonts/
directory -
Option 2.
want to download a font family package of variations (bold, italic, etc.) see download an archive -
Option 3.
want to automate installing or use in scripts see the Install Script -
Option 4.
are on macOS and want to use Homebrew see Homebrew Fonts -
Option 5.
want complete control then see cloning the repo -
Option 6.
want to use thecurl
command or use in scripts see Ad Hoc Curl Download -
Option 7
. are on Windows and want to use Chocolatey or Scoop see Unofficial Chocolatey or Scoop Repositories -
Option 8.
are on Arch Linux and want to use AUR packages see Unofficial Arch User Repositories -
Option 9.
want to patch your own font see the Font Patcher
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:
- Nerd Fonts Complete Release (double-width)
- Nerd Fonts Complete Release (single-width) (out of date)
- Nerd Fonts Complete Git (has always the newest fixes)
- Nerd Fonts Anonymous Pro
- Nerd Fonts DejaVu Complete
- Nerd Fonts Fira Code
- Nerd Fonts Go Mono
- Nerd Fonts Hack
- Nerd Fonts Inconsolata
- Nerd Fonts Jetbrains Mono
- Nerd Fonts Liberation Mono
- Nerd Fonts Noto
- Nerd Fonts Source Code Pro Complete
- Nerd Fonts Terminus
- Nerd Fonts Victor Mono
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 (version20141231
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
-
✅ Use:
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