29 KiB
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](http://sankeymatic.com/)_
Quick Links
Latest Release ➶ | Fonts | Patcher | VimDevIcons ➶ | Font Package Downloads |
---|---|---|---|---|
Important Notices
master
branch file paths are not considered stable. Verify your repository URI references- cloning this repository is not recommended unless you are going to be contributing to development
Table of Contents
- 1 - Install Script
- 2 - Ad Hoc Curl Download
- 3 - Release Archive Download
- 4 - Homebrew Fonts (macOS (OS X))
- 5 - Arch User Repository (AUR) (Arch Linux)
- 6 - Manual
- 7 - Clone Repo
- 8 - Patch Your Own Font
Additional Info
Features
- A FontForge python script to patch any font
35
already patched font families- Over
7,400
unique combinations/variations of patched fonts (more details) - Over
1,300
glyphs/icons combined (more details)- Current glyph sets include: Powerline with Extra Symbols, Font Awesome, Devicons, Octicons, Font Linux, Pomicons
- A Developer/Contributor provided bash script to re-patch all the fonts
Glyph Sets
Seti-UI + Custom
Based off of Seti-UI Icomoon with extra custom glyphs.
Devicons
An iconic font made for developers, code jedis, ninjas, HTTPsters, evangelists and nerds(sic). / (repo) / (website)
Font Awesome
Font Awesome Extension
Octicons
Nerd Font Complete Codepoints:*
* 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)
IEC Power Symbols
Adding new characters into Unicode / (website)
Font Linux
Font-linux is an icon font containing logos of popular linux distributions for inclusion in websites. / (repo)
Pomicons
8 symbols for the "Pomodoro Technique"®. / (repo)
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 oncei_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
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 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
*RFN = Reserved Font Name
Combinations
- Over
74,000
unique variations/combinations (Power Set) of patched fonts: 35
patched font typefaces140
patched font families560
'complete' variations/combinations73,960
possible variations/combinations74,520
total calculated combinations (560 + 73,960)- Combinations for each font are any combination of (plus no flags option) Variations
Variations
- no flags given (defaults to only Seti-UI and Devicons)
- double (variable/proportional) or single (fixed/monospaced) width icons/glyphs
- Font Awesome
- Font Awesome Extension
- GitHub Octicons
- Font Linux
- Powerline Extra Symbols
- IEC Power Symbols
- Pomicons
- Windows Compatibility
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:
- Nerd Fonts Complete
- Nerd Fonts DejaVu Complete
- Nerd Fonts Source Code Pro Complete
- Nerd Fonts Git (out of date)
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
Patching the font of your own choosing for use with the VimDevIcons:
- requires: python2, 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
| Unstable file paths warning |
| 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 |
| Not: 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 History
Motivation (Original Rationale)
-
Originally created for use with vim-devicons vim plugin to add glyphs (icons) as labels for files based on the filetype extension or entire path. This project began as a part of the vim-devicons repo but soon it became apparent it did not belong tied to the vim plugin. I thought it may benefit others more as a separate project and allow a wider range of uses. This project started before I knew about Fontconfig provided solution, although a patched font still has some benefits over the Fontconfig.
-
project and repository previously known as 'nerd-filetype-glyphs-fonts-patcher' and 'font-nerd-icons'
Changelog
See changelog.md
License
MIT © Ryan L McIntyre