.github | ||
glyph-source-fonts | ||
images | ||
patched-fonts | ||
source | ||
unpatched-sample-fonts | ||
.gitignore | ||
changelog.md | ||
code_of_conduct.md | ||
contributing.md | ||
font-patcher | ||
font-patcher-py3 | ||
gotta-patch-em-all-font-patcher!.sh | ||
install.sh | ||
LICENSE | ||
readme.md | ||
standardize-and-complete-readmes.sh |
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
For more high level information see the wiki. If you are looking for the Vim plugin see vim-devicons ➶.
Quick Links
Fonts | Patcher | Vim Plugin ➶ |
---|---|---|
| Warning: master
branch file paths are not considered stable. Please read if you are directly referencing the repository URI |
Features
- A FontForge python script to patch any font
- 26 already patched font families
- Over 5,700 unique combinations/variations of patched fonts (more details)
- Over 1,000 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
Table of Contents
- Glyph sets
- Usage
- Patched Fonts List
- Combinations
- Font Installation
- Font Install Script (Linux & Mac OS X)
- Font Patcher
- Gotta Patch 'em All Font Patcher!
- Unstable file paths on master
- Other Good Fonts to Patch
- Project History
- Contributing
- Changelog
- License
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
Octicons
Powerline Extra Symbols
Provides extra Powerline separator glyphs and a column number glyph (CN). / (repo)
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)
Usage
Option A
Install any of the already provided patched fonts
Option B
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
Patched Fonts
*RFN = Reserved Font Name
- Variations include:
- extra glyphs that are double or single (monospaced) width
- Font Awesome
- GitHub Octicons
- Font Linux
- Pomicons
- Full Windows Compatibility (WIP)
Combinations
- Over 5,700 unique variations/combinations (Power Set) of patched fonts:
- 102 unpatched font variations (counting otf and ttf)
- 56 combinations (Includes Powerline Extra Symbols)
- Calculated combinations (56 * 102) = 5,712
- Combinations for each font are any combination of (plus no flags option):
- Monospaced extra glyphs
- Windows Compatible
- Font Awesome
- GitHub Octicons
- Font Linux
- Pomicons
Font Installation
Put any font you would like to use into the ~/.local/share/fonts
(Linux) or ~/Library/Fonts/
(OS X) folder. For example:
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
deprecated alternative paths: ~/.fonts
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
Font Install Script
- Linux & Mac OS X
To install all fonts:
- Installs all the patched Fonts (Warning: This is a lot of Fonts adding up to a large size)
./install.sh
To install a single font:
./install.sh <FontName>
./install.sh Hack
./install.sh HeavyData
Patching the font of your own choosing for use with the vim-devicons vim plugin:
- 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] [--fontawesome] [--fontlinux]
[--octicons] [--pomicons] [--powerline] [--powerlineextra]
[--careful] [-out [OUTPUTDIR]]
font
Patches a given font with programming and web development related glyphs
(mainly for https://github.com/ryanoasis/vim-devicons)
positional arguments:
font The path to the font to be patched (e.g.
Inconsolata.otf)
optional arguments:
-h, --help show this help message and exit
-v, --version show program's version number and exit
-s, --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-font-name-length
Limit the internal font name to a maximum of 31
characters (for safe Windows compatiblity)
--fontawesome Add Font Awesome Glyphs (http://fortawesome.github.io
/Font-Awesome)
--fontlinux Add Font Linux Glyphs (https://github.com/Lukas-W
/font-linux)
--octicons Add Octicons Glyphs (https://octicons.github.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)
--careful Do not overwrite existing glyphs if detected
-out [OUTPUTDIR], --outputdir [OUTPUTDIR]
The directory to output the patched font file to
Examples
./font-patcher unpatched-sample-fonts/Droid\ Sans\ Mono\ for\ Powerline.otf
./font-patcher unpatched-sample-fonts/Droid\ Sans\ Mono\ for\ Powerline.otf -s -q
./font-patcher unpatched-sample-fonts/Droid\ Sans\ Mono\ for\ Powerline.otf --use-single-width-glyphs --quiet
./font-patcher unpatched-sample-fonts/Droid\ Sans\ Mono\ for\ Powerline.otf -w
./font-patcher unpatched-sample-fonts/Droid\ Sans\ Mono\ for\ Powerline.otf --windows --quiet
./font-patcher unpatched-sample-fonts/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
Unstable file paths
| Unstable file paths warning |
| Please make sure to reference via the release branch and not the master branch because paths are subject change for each release |
| For example (paths shorted for demonstation purposes): |
| Instead of: https://github.com/ryanoasis/nerd-fonts/blob/master/patched-fonts/DroidSansMono/< font_path >.otf |
| Please use: https://github.com/ryanoasis/nerd-fonts/blob/0.8.0/patched-fonts/DroidSansMono/< font_path >.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
- Coming soon with external hosting :)
- PragmataPro
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'
Contributing
See contributing.md
Changelog
See changelog.md
License
MIT © Ryan L McIntyre