/nerd-fonts

:abcd: Iconic font aggregator, collection, and patcher: 37 patched fonts (71.4k+ variations). Includes popular glyph collections such as Font Awesome & fonts such as Hack

Primary LanguageShellMIT LicenseMIT

Nerd Fonts Logo

GitHub release Gitter CodeClimate Code of Conduct PRs Welcome   Windows Logo   macOS (OSX) Logo   Linux Logo

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:

@SankeyMATIC Diagram

Diagram created using @SankeyMATIC

Quick Navigation

Latest Release ➶ Fonts Patcher VimDevIcons ➶ Font Package
Downloads ➶
fonts-logo-small fonts-logo-small patcher-logo-small vim-devicons-logo-small fonts-logo-small

Important Notices

Table of Contents

Installation Options

Features

Developer / Contributor

Project History

Additional Info

Features

Glyph Sets

🔍 🔍 You can now search for glyphs easily on NerdFonts.com via the Cheat Sheet

Seti-UI + Custom

Based off of Seti-UI Icomoon with extra custom glyphs.

image

Devicons

An iconic font made for developers, code jedis, ninjas, HTTPsters, evangelists and nerds(sic). / (repo) / (website)

image

Font Awesome

The iconic font and CSS toolkit. / (repo) / (website)

image image image image

Font Awesome Extension

Simple Font Awesome Extension. / (repo) / (website)

image

Octicons

GitHub's icons. / (repo) / (website)

Nerd Font Complete Codepoints:*

image

* To avoid conflicts between icon sets, these were modified in the 'Complete' fonts. To view the original codepoints see the Wiki.

Powerline Extra Symbols

Provides extra Powerline separator glyphs and a column number glyph (CN). / (repo)

image

IEC Power Symbols

Adding new characters into Unicode / (website)

image image

Font Linux

Font-linux is an icon font containing logos of popular linux distributions for inclusion in websites. / (repo)

image

Pomicons

8 symbols for the "Pomodoro Technique"®. / (repo)

image

Icon names in shell

Download provided .sh files from bin/scripts/lib/ directory somewhere, recommended locations are ~/.local/share/fonts/ or ~/bin/.

  • i_all.sh - helper to load all files you've downloaded at once
  • i_dev.sh - Devicons (198 icons, 8 does not have an established name)
  • i_fa.sh - Font Awesome (675 icons, 111 aliases)
  • i_fae.sh - Font Awesome Extension (170 icons)
  • i_iec.sh - IEC Power Symbols (5 icons)
  • i_linux.sh - Font Linux (20 icons)
  • i_oct.sh - Octicons (172 icons)
  • i_ple.sh - Powerline Extra Symbols (37 icons, 2 aliases, 16 does not have an established name)
  • i_pom.sh - Pomicons (11 icons)
  • i_seti.sh - Seti-UI + Custom (50 icons, 2 aliases, 5 does not have an established name)

Then source the required file(s) and output $i_* variables to see icons:

source ~/.local/share/fonts/i_oct.sh
echo $i_oct_heart
# Output:
#

NOTE: You have to use one of the Nerd Fonts to see correct icons for some icon sets (Devicons, Font Awesome Extension, Font Linux), but other sets should work with their standard fonts too.

Patched Fonts

Font Name Font Name and Repository *RFN EM Size Status
3270 Nerd Font 3270 NO 1000 w2 m2 l2
Anonymice Nerd Font Anonymous Pro NO 2048 w m2 l
Aurulent Sans Mono Nerd Font NO 1000 w m2 l
Bitstream Vera Sans Mono Nerd Font NO 2048 w m2 l
Code New Roman Nerd Font NO 2048 w m2 l
DejaVu Sans Mono Nerd Font NO 2048 w m2 l
Droid Sans Mono Nerd Font NO 2048 w m2 l
Fantasque Sans Nerd Font Fantasque Sans NO 2048 w m2 l
Fura Code Nerd Font Fira YES 1000 w m2 l
Fura Mono Nerd Font Fira YES 1000 w m2 l
Gohu Nerd Font Gohu NO 1000 w2 m2 l2
Hasklug Nerd Font Hasklig YES 1000 w m2 l
Heavy Data Mono Nerd Font NO 2048 w m2 l
Hermut Nerd Font NO 1000 w m2 l
Inconsolata Nerd Font NO 1000 w m2 l
Inconsolata Go Nerd Font NO 1000 w m2 l
Iosevka Nerd Font Iosevka YES 1000 #83
Knack Nerd Font Hack YES 2048 w m2 l
Lekton Nerd Font NO 1000 w m2 l
Literation Mono Nerd Font Liberation YES 2048 w m2 l
Meslo Nerd Font NO 2048 w m2 l
Monofur Nerd Font NO 2400 w m2 l
Monoid Nerd Font NO 1536 w m2 l
Mononoki Nerd Font Mononoki NO 1024 w m2 l
M+ (MPlus) Nerd Font NO 1000 w m2 l
ProFont (Windows tweaked) Nerd Font NO 1200 w m2 l
ProFont (x11) Nerd Font NO 1000 [FAILING]
ProggyClean Nerd Font NO 2048 [FAILING]
Roboto Mono NO 2048 [FAILING]
Sauce Code Nerd Font Source YES 1000 w m2 l
Shure Tech Mono Nerd Font Share Tech Mono YES 1000 w m2 l
Space Mono Nerd Font Space Mono NO 1000 w m2 l
Terminess Nerd Font Terminus Font YES 1000 w m2 l
Ubuntu Mono derivative Nerd Font NO 1000 w m2 l
Ubuntu Mono Nerd Font NO 1000 w m2 l

*RFN = Reserved Font Name

Combinations

  • Over 71,000 unique variations/combinations (Power Set) of patched fonts:
    • 37 patched font typefaces
    • 138 patched font families
    • 552 'complete' variations/combinations
    • 70,892 possible variations/combinations
    • 71,444 total calculated combinations (552 + 70,892)
  • Combinations for each font are any combination of Variations

Variations

Font Installation

Option 1: Install Script

Note: only for Linux & macOS (OS X)

All fonts:

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

Single font:

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

Option 2: Ad Hoc Curl Download

Linux

mkdir -p ~/.local/share/fonts
cd ~/.local/share/fonts && curl -fLo "Droid Sans Mono for Powerline Nerd Font Complete.otf" https://raw.githubusercontent.com/ryanoasis/nerd-fonts/master/patched-fonts/DroidSansMono/complete/Droid%20Sans%20Mono%20for%20Powerline%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://raw.githubusercontent.com/ryanoasis/nerd-fonts/master/patched-fonts/DroidSansMono/complete/Droid%20Sans%20Mono%20for%20Powerline%20Nerd%20Font%20Complete.otf

Option 3: Release Archive Download

Fonts are available for download as packages in the latest release

Option 4: Homebrew Fonts

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

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

Option 5: Unofficial Arch User Repository (AUR)

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

Option 6: Download and Install Manually

Download the specific patched font of your choice

Option 7: Clone the Repo

Cloning of this repository is not required nor the most efficient way to get the fonts, however if you want all the fonts and want to clone be sure to shallow clone:

git clone --depth 1

For more high level information see the wiki. If you are looking for the Vim plugin see VimDevIcons ➶.

Option 8: Patch Your Own 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

Nerd Fonts Patcher

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
  • 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
usage: font-patcher [-h] [-v] [-s] [-q] [-w] [-c] [--fontawesome]
                    [--fontawesomeextension] [--fontlinux] [--octicons]
                    [--powersymbols] [--pomicons] [--powerline]
                    [--powerlineextra] [--custom [CUSTOM]]
                    [--postprocess [POSTPROCESS]]
                    [--progressbars | --no-progressbars] [--careful]
                    [-ext [EXTENSION]] [-out [OUTPUTDIR]]
                    font

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

Website: https://github.com/ryanoasis/nerd-fonts

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

optional arguments:
  -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)
  -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
  --fontawesome         Add Font Awesome Glyphs (http://fortawesome.github.io/Font-Awesome)
  --fontawesomeextension
                        Add Font Awesome Extension Glyphs (http://andrelgava.github.io/font-awesome-extension)
  --fontlinux           Add Font Linux Glyphs (https://github.com/Lukas-W/font-linux)
  --octicons            Add Octicons Glyphs (https://octicons.github.com)
  --powersymbols        Add IEC Power Symbols (http://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)
  --custom [CUSTOM]     Specify a custom symbol font. All new glyphs will be copied, with no scaling applied.
  --postprocess [POSTPROCESS]
                        Specify a Script for Post Processing
  --progressbars        Show percentage completion progress bars per Glyph Set
  --no-progressbars     Don't show percentage completion progress bars per Glyph Set
  --careful             Do not overwrite existing glyphs if detected
  -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

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

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 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

  • a list of additional good fonts to patch that I cannot provide or share due to the license:
  • Input Mono (license restriction)
    • Possibly coming with external hosting :)
  • PragmataPro (not free)
  • Consolas (proprietary)

Project Motivation

See Wiki: Project Purpose

Changelog

See changelog.md

License

MIT © Ryan L McIntyre