readme.md

    Nerd Fonts Logo

    Iconic font aggregator, collection, and patcher

    Releases   |   Fonts   |   Font Patcher   |   Wiki Documentation   |   Stickers   |   VimDevIcons

    GitHub release Gitter Build Status Code of Conduct PRs Welcome Nerd Fonts - OS Support Twitter

    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:

    @SankeyMATIC Diagram

    Diagram created using @SankeyMATIC

    Important Notices

    Table of Contents

    TL;DR

    Installation Options

    Features

    Developer / Contributor

    Project Motivation

    Additional Info

    TL;DR

    Nerd Fonts takes popular programming fonts and adds a bunch of Glyphs. There is also a font patcher available if your desired font isn't already patched. For more high level information see the wiki. If you are looking for the Vim plugin see VimDevIcons ➶.

    Various Download Options for Fonts

    If you...

    Features

    Glyph Sets

    🔍 🔍 You can now search for glyphs easily on NerdFonts.com via the Cheat Sheet

    See Wiki: Glyph Sets and Codepoints for more details

    Icon names in shell

    See Wiki: Icon names in shell

    Patched Fonts

    Font Name Font Name and Repository *RFN EM Size Status
    3270 Nerd Font 3270 NO 1000 w m2 l
    Agave Agave NO 2048 w m2 l
    Anonymice Nerd Font Anonymous Pro NO 2048 w m2 l
    Arimo Arimo NO 2048 w m2 l
    Aurulent Sans Mono Nerd Font NO 1000 w m2 l
    BigBlueTerminal NO 1200 w m2 l
    Bitstream Vera Sans Mono Nerd Font NO 2048 w m2 l
    Blex* IBM Plex Mono YES 1000 w m2 l
    Caskaydia Cove Nerd Font* Cascadia Code YES 2048 w m2 l
    Code New Roman Nerd Font NO 2048 w m2 l
    Cousine Nerd Font Cousine NO 1000 w m2 l
    DaddyTimeMono DaddyTimeMono NO 1024 w m2 l
    DejaVu Sans Mono Nerd Font NO 2048 w m2 l
    Droid Sans Mono Nerd Font NO 2048 w m2 l
    Fantasque Sans Nerd Font Fantasque Sans NO 2048 w m2 l
    Fira Code Nerd Font Fira Code NO 1000 w m2 l
    Fira Mono Nerd Font Fira NO 1000 w m2 l
    Go Mono Nerd Font Go-Mono NO 1000 w m2 l
    Gohu Nerd Font Gohu TTF,Gohu NO 1000 w m2 l
    Hack Nerd Font Hack NO 2048 w m2 l
    Hasklug Nerd Font* Hasklig YES 1000 w m2 l
    Heavy Data Mono Nerd Font NO 2048 w m2 l
    Hurmit Nerd Font NO 1000 w m2 l
    iM-Writing* iA-Writer YES 1000 w m2 l
    Inconsolata Nerd Font NO 1000 w m2 l
    Inconsolata Go Nerd Font NO 1000 w m2 l
    Inconsolata LGC Nerd Font NO 1000 w m2 l
    Iosevka Nerd Font Iosevka NO 1000 #83
    JetBrains Mono JetBrains Mono NO 1000 w m2 l
    Lekton Nerd Font NO 1000 w m2 l
    Literation Mono Nerd Font* Liberation YES 2048 w m2 l
    Lilex Nerd Font Lilex NO 2000 w2 m2 l
    Meslo Nerd Font NO 2048 w m2 l
    Monofur Nerd Font NO 2400 w m2 l
    Monoid Nerd Font NO 1536 w m2 l
    Mononoki Nerd Font Mononoki NO 1024 w m2 l
    M+ (MPlus) Nerd Font NO 1000 w m2 l
    Noto NO 1000 w m2 l
    OpenDyslexic NO 1000 w m2 l
    Overpass NO 1000 w m2 l
    ProFont (Windows tweaked) Nerd Font NO 1200 w m2 l
    ProFont (x11) Nerd Font NO 1000 w m2 l
    ProggyClean Nerd Font NO 2048 Imperfect
    Roboto Mono NO 2048 w m2 l
    Sauce Code Nerd Font Source YES 1000 w m2 l
    Shure Tech Mono Nerd Font* Share Tech Mono YES 1000 w m2 l
    Space Mono Nerd Font Space Mono NO 1000 w m2 l
    Terminess Nerd Font* Terminus Font YES 1000 w m2 l
    Tinos NO 2048 w m2 l
    Ubuntu Nerd Font NO 1000 w m2 l
    Ubuntu Mono Nerd Font NO 1000 w m2 l
    Victor Mono Victor Mono NO 1000 w m2 l

    *RFN = Reserved Font Name

    Combinations

    • Over 1,485,000 unique variations/combinations (Power Set) of patched fonts:
      • 50 patched font typefaces
      • 719 patched font families
      • 2,876 'complete' variations/combinations
      • '1,485,410' possible variations/combinations
        • 1,488,286 total calculated combinations (2,876 + 1,428,110)
    • Combinations for each font are any combination of Variations

    Variations

    Font Installation

    Option 1: Download and Install Manually

    Best option for quickly getting a specific individual font.

    Download the specific patched font of your choice

    Option 2: Release Archive Download

    Best option if you want an archive or complete font family of variations (Bold, Italic, etc.).

    Fonts are available for download as packages in the latest release

    Option 3: Install Script

    Best option if you want to automate installing or for use in scripts.

    Note: Requires cloning the repo as of now

    All fonts:

    • Installs all the patched Fonts (Warning: This is a lot of Fonts adding up to a large size)
    ./install.sh

    or, in Powershell (Windows only):

    ./install.ps1

    Single font:

    • Installs a single Font of your choice
    ./install.sh <FontName>
    ./install.sh Hack
    ./install.sh HeavyData

    or, in Powershell (Windows only):

    ./install.ps1 <FontName>
    ./install.ps1 Hack
    ./install.ps1 HeavyData

    Option 4: Homebrew Fonts

    Best option if on macOS and want to use Homebrew.

    All fonts are available via Homebrew Cask Fonts on macOS (OS X)

    brew tap homebrew/cask-fonts
    brew install --cask font-hack-nerd-font

    Option 5: Clone the Repo

    Best option for full control, all or some of the fonts, or contributing to development.

    A full clone of this repository is not required nor efficient (mostly due to Repository size) if you are simply only interested in a limited set of fonts.

    If you do want to clone the entire repo be sure to shallow clone:

    git clone --depth 1

    If you want to clone a sub-directory, use git sparse-checkout. The following example requires Git v2.26:

    git clone --filter=blob:none --sparse git@github.com:ryanoasis/nerd-fonts
    cd nerd-fonts
    git sparse-checkout add patched-fonts/JetBrainsMono

    Option 6: Ad Hoc Curl Download

    Option if you want to use the curl command or for use in scripts.

    Linux

    mkdir -p ~/.local/share/fonts
    cd ~/.local/share/fonts && curl -fLo "Droid Sans Mono for Powerline Nerd Font Complete.otf" https://github.com/ryanoasis/nerd-fonts/raw/master/patched-fonts/DroidSansMono/complete/Droid%20Sans%20Mono%20Nerd%20Font%20Complete.otf

    Note: deprecated alternative paths: ~/.fonts

    macOS (OS X)

    cd ~/Library/Fonts && curl -fLo "Droid Sans Mono for Powerline Nerd Font Complete.otf" https://github.com/ryanoasis/nerd-fonts/raw/master/patched-fonts/DroidSansMono/complete/Droid%20Sans%20Mono%20Nerd%20Font%20Complete.otf

    Option 7: Unofficial Arch User Repository (AUR)

    Option for Arch Linux and wanting to use AUR packages.

    The following fonts are available via AUR packages on Arch Linux:

    Option 8: Patch Your Own Font

    The option for patching your own font or fully customizing the patched font.

    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
    • you will still need to copy the generated font to the correct font directory on your system

    Nerd Fonts Patcher

    Patching the font of your own choosing for use with the VimDevIcons ➶:

    • requires: Python 2 (or Python 3), python-fontforge package (version 20141231 or later, see the install instructions)

    • alternative install method on OSX: brew install fontforge

    • alternative method on Linux: Using the AppImage

    • alternative method using Docker: Docker Hub

    • 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
    • Patching fonts using the AppImage:

      Note: chmod u+x the AppImage after download. All supplied paths need to be absolute and an explicit output path is required! If everything is located in the same directory, you can use the $PWD shorthand.

      ./FontForge.AppImage -script $PWD/font-patcher $PWD/BaseFont.ttf -out /tmp
    • Patching fonts with Docker:

      docker run -v /path/to/fonts:/in -v /path/for/output:/out nerdfonts/patcher [OPTIONS]

    Full options:

    usage: font-patcher [-h] [-v] [-s] [-l] [-q] [-w] [-c] [--fontawesome]
                        [--fontawesomeextension] [--fontlinux] [--octicons]
                        [--powersymbols] [--pomicons] [--powerline]
                        [--powerlineextra] [--material] [--weather]
                        [--custom [CUSTOM]] [--postprocess [POSTPROCESS]]
                        [--removeligs] [--configfile [CONFIGFILE]]
                        [--progressbars | --no-progressbars] [--careful]
                        [-ext [EXTENSION]] [-out [OUTPUTDIR]]
                        font
    
    Nerd Fonts Font Patcher: patches a given font with programming and development related glyphs
    
    * Website: https://www.nerdfonts.com
    * Version: 2.0.0
    * Development Website: https://github.com/ryanoasis/nerd-fonts
    * Changelog: https://github.com/ryanoasis/nerd-fonts/blob/master/changelog.md
    
    positional arguments:
      font                  The path to the font to patch (e.g., Inconsolata.otf)
    
    optional arguments:
      -h, --help            show this help message and exit
      -v, --version         show program's version number and exit
      -s, --mono, --use-single-width-glyphs
                            Whether to generate the glyphs as single-width not double-width (default is double-width)
      -l, --adjust-line-height
                            Whether to adjust line heights (attempt to center powerline separators more evenly)
      -q, --quiet, --shutup
                            Do not generate verbose output
      -w, --windows         Limit the internal font name to 31 characters (for Windows compatibility)
      -c, --complete        Add all available Glyphs
      --fontawesome         Add Font Awesome Glyphs (http://fontawesome.io/)
      --fontawesomeextension
                            Add Font Awesome Extension Glyphs (https://andrelzgava.github.io/font-awesome-extension/)
      --fontlinux, --fontlogos
                            Add Font Linux and other open source Glyphs (https://github.com/Lukas-W/font-logos)
      --octicons            Add Octicons Glyphs (https://octicons.github.com)
      --powersymbols        Add IEC Power Symbols (https://unicodepowersymbol.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)
      --material, --materialdesignicons, --mdi
                            Add Material Design Icons (https://github.com/templarian/MaterialDesign)
      --weather, --weathericons
                            Add Weather Icons (https://github.com/erikflowers/weather-icons)
      --custom [CUSTOM]     Specify a custom symbol font. All new glyphs will be copied, with no scaling applied.
      --postprocess [POSTPROCESS]
                            Specify a Script for Post Processing
      --removeligs, --removeligatures
                            Removes ligatures specified in JSON configuration file
      --configfile [CONFIGFILE]
                            Specify a file path for JSON configuration file (see sample: src/config.sample.json)
      --progressbars        Show percentage completion progress bars per Glyph Set
      --no-progressbars     Don't show percentage completion progress bars per Glyph Set
      --careful             Do not overwrite existing glyphs if detected
      -ext [EXTENSION], --extension [EXTENSION]
                            Change font file type to create (e.g., ttf, otf)
      -out [OUTPUTDIR], --outputdir [OUTPUTDIR]
                            The directory to output the patched font file to

    Examples

    ./font-patcher Droid\ Sans\ Mono\ for\ Powerline.otf
    ./font-patcher Droid\ Sans\ Mono\ for\ Powerline.otf -s -q
    ./font-patcher Droid\ Sans\ Mono\ for\ Powerline.otf --use-single-width-glyphs --quiet
    ./font-patcher Droid\ Sans\ Mono\ for\ Powerline.otf -w
    ./font-patcher Droid\ Sans\ Mono\ for\ Powerline.otf --windows --quiet
    ./font-patcher 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
    
    ./FontForge.AppImage -script /tmp/nerdfonts/font-patcher /tmp/nerdfonts/CascadiaMonoPL-Semibold.ttf --fontawesome -out /tmp
    ./FontForge.AppImage -script $PWD/font-patcher $PWD/CascadiaMonoPL-Semibold.ttf --octicons -out $HOME
    
    docker run --rm -v ~/myfont/patchme:/in -v ~/myfont/patched:/out nerdfonts/patcher
    docker run --rm -v ~/Desktop/myfont/patchme:/in -v ~/Desktop/myfont/patched:/out nerdfonts/patcher --fontawesome

    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

    Contributing

    See contributing.md

    Unstable File Paths

    Warning: File paths may change based on releases (especially major version bumps)

    Reference the release branch and not the master branch because paths are subject to change for each release

    • For example:
      • Use: https://github.com/ryanoasis/nerd-fonts/blob/0.9.0/patched-fonts/Hermit/Medium/complete/Hurmit%20Medium%20Nerd%20Font%20Complete.otf
      • Instead of: https://github.com/ryanoasis/nerd-fonts/blob/master/patched-fonts/Hermit/Medium/complete/Hurmit%20Medium%20Nerd%20Font%20Complete.otf

    Other Good Fonts to Patch

    A list of additional good fonts to patch that cannot be provided or shared due to their license:

    Project Motivation

    See Wiki: Project Purpose

    Changelog

    See changelog.md

    License

    MIT © Ryan L McIntyre

    项目简介

    🚀 Github 镜像仓库 🚀

    源项目地址

    https://github.com/ryanoasis/nerd-fonts

    发行版本 21

    v2.2.0-RC: Workflow for building release candidate (WIP)

    全部发行版

    贡献者 134

    全部贡献者

    开发语言

    • CSS 41.2 %
    • Shell 35.1 %
    • Python 13.9 %
    • PowerShell 8.9 %
    • HTML 0.8 %