1
0
mirror of https://github.com/ryanoasis/nerd-fonts.git synced 2024-12-19 20:12:52 +02:00
Iconic font aggregator, collection, & patcher. 3,600+ icons, 50+ patched fonts: Hack, Source Code Pro, more. Glyph collections: Font Awesome, Material Design Icons, Octicons, & more https://nerdfonts.com/
Go to file
2016-12-19 11:27:04 -05:00
.github Adds PR template (fixes #66) 2016-03-19 20:39:22 -04:00
glyph-source-fonts Adds new glyph font source: Font Linux (fixes #75) 2016-05-08 16:58:54 -04:00
images 🎨 Optimized logo filesize 2016-03-19 19:50:37 -04:00
patched-fonts Add license file for 3270font, fix #112 2016-10-21 11:34:02 +01:00
source Adds a 2to3 python conversion bash script 2016-05-14 10:06:34 -04:00
unpatched-sample-fonts Updates Hack license and adds missing original readme 2016-05-15 13:24:39 -04:00
_config.yml Update _config.yml 2016-12-19 10:59:52 -05:00
.gitignore Ensure 'Input Mono' never commited per License and Author request 2015-11-10 20:17:15 -05:00
changelog.md Updates changelog with more fixes for v0.8.0 2016-05-15 13:36:54 -04:00
CNAME Create CNAME 2016-12-15 00:42:39 -05:00
code_of_conduct.md Updates to Contributor Covenant v1.4 2016-11-04 20:37:38 -04:00
contributing.md Adds contributing guidelines (fixes #66) 2016-03-19 20:58:04 -04:00
font-patcher Updates version and reference info for 0.8.0 2016-05-08 17:04:21 -04:00
font-patcher-py3 Updates python 3 version of font patcher to version 0.8.0 2016-05-14 10:11:43 -04:00
gotta-patch-em-all-font-patcher!.sh Updates version and reference info for 0.8.0 2016-05-08 17:04:21 -04:00
index.md Adds download links and project images 2016-12-19 11:25:33 -05:00
install.sh Better installation script 2016-09-02 10:00:18 +02:00
LICENSE v0.1.0 inital port from 'features/1-script-patch-fonts' branch on vim-webdevicons repo 2014-12-04 23:29:54 -05:00
readme.md fix typo 2016-10-20 21:03:03 +02:00
standardize-and-complete-readmes.sh Updates version and reference info for 0.8.0 2016-05-08 17:04:21 -04:00

nerd fonts

GitHub version Join the chat at https://gitter.im/ryanoasis/nerd-fonts Flattr this git repo

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:

@SankeyMATIC Diagram

Diagram created using @SankeyMATIC

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

Fonts Patcher Vim Plugin ➶
fonts-logo-small patcher-logo-small vim-devicons-logo-small

| Warning: master branch file paths are not considered stable: Please read if you are referencing the repo directly |

Features

Table of Contents

Glyph Sets

Seti-UI + Custom

Based off of Seti-UI Icomoon with additional custom glyphs added from various sources.

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

Octicons

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

image

Powerline Extra Symbols

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

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

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

Patched Fonts

Font Name Font Name and Repository *RFN EM Size Status
3270 Nerd Font NO 1000 [TEST]
Anonymice Nerd Font Anonymous Pro NO 2048 [TEST]
Aurulent Sans Mono Nerd Font NO 1000 [TEST]
Bitstream Vera Sans Mono Nerd Font NO 2048 [TEST]
DejaVu Sans Mono Nerd Font NO 2048 [TEST]
Droid Sans Mono Nerd Font NO 2048 [TEST]
Fantasque Sans Nerd Font Fantasque Sans NO 2048 [TEST]
Fura Code Nerd Font Fira YES 1000 [TEST]
Fura Mono Nerd Font Fira YES 1000 [TEST]
Heavy Data Mono Nerd Font NO 2048 [TEST]
Hermut Nerd Font NO 1000 [TEST]
Inconsolata Nerd Font NO 1000 [TEST]
Iosevka Iosevka YES 1000 #83
Knack Nerd Font Hack YES 2048 #70
Lekton Nerd Font NO 1000 [TEST]
Literation Mono Nerd Font Liberation YES 2048 [TEST]
Meslo Nerd Font NO 2048 [TEST]
Monofur Nerd Font NO 2400 [TEST]
Monoid Nerd Font NO 1536 [TEST]
M+ (MPlus) Nerd Font NO 1000 [TEST]
ProFont (Windows tweaked) Nerd Font NO 1200 [TEST]
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 [TEST]
Terminess Nerd Font Terminus Font YES 1000 #16
Ubuntu Mono derivative Nerd Font NO 1000 [TEST]
Ubuntu Mono Nerd Font NO 1000 [TEST]

*RFN = Reserved Font Name

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

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

Nerd Fonts Patcher

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