glyph-source-fonts | ||
images | ||
patched-fonts | ||
unpatched-sample-fonts | ||
.gitignore | ||
changelog.md | ||
code_of_conduct.md | ||
font-patcher | ||
gotta-patch-em-all-font-patcher!.sh | ||
install.sh | ||
LICENSE | ||
readme.md |
| Unstable file paths warning: To avoid font file references breaking on releases please read |
Fonts | Patcher |
---|---|
- A FontForge python script to patch any font
- Over 20 already patched font families
- Over 2,000 unique combinations/variations of patched fonts (more details)
- Over 1,000 glyphs/icons combined (more details)
- Originally created for use with vim-devicons ➶ vim plugin
Table of Contents
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
Pomicons
8 symbols for the "Pomodoro Technique"®. / (repo)
Powerline Extra Symbols
Provides additional Powerline separator glyphs and a column number glyph (CN). / (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
- Variations include:
- extra glyphs that are double or single (monospaced) width
- Font Awesome
- GitHub Octicons
- Pomicons
- Full Windows Compatibility (WIP)
Combinations
- Over 2,000 unique variations/combinations (Power Set) of patched fonts:
- 57 font variations (just counting otf and ttf)
- 36 combinations (Powerline Extra included by default currently)
- Calculated combinations (36 * 57) = 2,052
- Combinations for each font are any combination of (plus no flags option):
- Monospaced extra glyphs
- Windows Compatible
- Font Awesome
- GitHub Octicons
- Pomicons
Glyphs Combined
Diagram created using @SankeyMATIC
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
Installs all of the patched Fonts (Warning: This is a lot of Fonts adding up to a large size)
- Linux & Mac OS X
./install.sh
Examples
./install.sh
All fonts installed to /home/ryan/.fonts
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] [-s] [-q] [-w] [--fontawesome] [--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
-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/)
--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.6.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
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
Other
- project/repo previously known as 'nerd-filetype-glyphs-fonts-patcher', 'font-nerd-icons'
License
see LICENSE