2cf5f12d17
It now has more options than copying all patched files or one font’s patched font files. In short, you can choose which patchset, which compatibility, which method (copy or symlink), and which fonts you want to install. |
||
---|---|---|
.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 attempts to patch as many developer targeted fonts as possible with a high number of additional glyphs (icons). The main goal is to specifically add a high number of additional 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 referencing the repo directly |
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 additional custom glyphs added from various sources.
Devicons
An iconic font made for developers, code jedis, ninjas, HTTPsters, evangelists and nerds(sic). / (repo) / (website)
Font Awesome
Octicons
Powerline Extra Symbols
Provides additional 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 additional 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 (just counting otf and ttf)
- 56 combinations (Powerline Extra included by default currently)
- 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 alternate 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 of 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)
- can alternately be installed on OSX via:
brew install fontforge
- Usage:
./font-patcher PATH_TO_FONT
- Alternate usage: Alternately the patcher can be run through 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!
- re-patches all fonts in the unpatched directory
- mostly for Contributor/Dev use only
- can optionally limit to specific font pattern (second example)
./gotta-patch-em-all-font-patcher\!.sh
./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 to being improved/changed per 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 might benefit others better 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