1
0
mirror of https://github.com/ryanoasis/nerd-fonts.git synced 2024-12-25 20:18:01 +02:00
nerd-fonts/readme.md
2016-05-15 14:04:35 -04:00

19 KiB

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