Convert Figma logo to code with AI

ryanoasis logonerd-fonts

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

53,721
3,618
53,721
36

Top Related Projects

25,633

Patched fonts for Powerline users.

76,660

Free monospaced font with programming ligatures

18,991

Versatile typeface for code, from code.

16,391

A typeface designed for source code

Monospaced font family for user interface and coding environments

JetBrains Mono – the free and open-source typeface for developers

Quick Overview

Nerd Fonts is a project that patches developer-targeted fonts with a high number of glyphs (icons). It specifically adds a large number of extra glyphs from popular 'iconic fonts' such as Font Awesome, Devicons, Octicons, and others. This allows developers to use these iconic fonts in their terminal, file explorer, and other development tools.

Pros

  • Provides a wide variety of patched fonts with thousands of additional glyphs
  • Supports many popular programming fonts and icon sets
  • Offers easy installation options for various operating systems
  • Regularly updated with new fonts and glyphs

Cons

  • Large file sizes due to the number of glyphs included
  • May require configuration of terminal or text editor to properly display glyphs
  • Some patched fonts may have slight differences from their original versions
  • Can be overwhelming for users who only need a small subset of the added glyphs

Getting Started

To use Nerd Fonts, follow these steps:

  1. Visit the Nerd Fonts releases page
  2. Download the font(s) you want to use
  3. Install the font(s) on your system:
    • Windows: Right-click the font file and select "Install"
    • macOS: Double-click the font file and click "Install Font"
    • Linux: Copy the font file to ~/.local/share/fonts/ and run fc-cache -fv
  4. Configure your terminal or text editor to use the installed Nerd Font

For more detailed instructions and options, refer to the project's README.

Competitor Comparisons

25,633

Patched fonts for Powerline users.

Pros of powerline/fonts

  • Lighter and more focused collection, specifically for Powerline
  • Easier to install and manage due to smaller size
  • Faster download and setup process

Cons of powerline/fonts

  • Limited font selection compared to Nerd Fonts
  • Fewer icon options and glyph coverage
  • Less frequent updates and maintenance

Code Comparison

powerline/fonts:

git clone https://github.com/powerline/fonts.git
cd fonts
./install.sh

Nerd Fonts:

git clone --depth 1 https://github.com/ryanoasis/nerd-fonts.git
cd nerd-fonts
./install.sh

Both repositories provide patched fonts for enhanced terminal and text editor experiences. powerline/fonts focuses specifically on Powerline-compatible fonts, while Nerd Fonts offers a more extensive collection with additional icon sets and glyphs.

powerline/fonts is ideal for users who primarily need Powerline support and prefer a lightweight solution. It's easier to manage and quicker to set up due to its smaller size.

Nerd Fonts, on the other hand, provides a vast array of fonts and icons, making it suitable for users who want more customization options and broader glyph coverage. However, it comes at the cost of a larger download size and potentially longer installation time.

The installation process for both repositories is similar, involving cloning the repository and running an installation script. The main difference lies in the depth and breadth of the font collections they offer.

76,660

Free monospaced font with programming ligatures

Pros of FiraCode

  • Focused on a single, high-quality programming font with ligatures
  • Lighter download and installation process
  • Regular updates and active development

Cons of FiraCode

  • Limited to one font family
  • Fewer icon options compared to the extensive collection in Nerd Fonts

Code Comparison

FiraCode:

if (isAwesome) {
  return true
} else {
  return false
}

Nerd Fonts:

if (isAwesome) {
  return true  // With added icons: 
} else {
  return false  // With added icons: 
}

Summary

FiraCode is a specialized programming font with ligatures, offering a streamlined experience for developers who prefer a single, well-designed font. It's easier to install and regularly updated. However, it lacks the extensive variety and icon options provided by Nerd Fonts.

Nerd Fonts, on the other hand, offers a vast collection of patched fonts with added icons, catering to users who want more customization options and icon variety in their development environment. While it provides more choices, it comes with a larger download size and potentially more complex installation process.

The choice between the two depends on whether you prioritize a focused, ligature-rich experience (FiraCode) or a wide range of font options with extensive icon support (Nerd Fonts).

18,991

Versatile typeface for code, from code.

Pros of Iosevka

  • Highly customizable font with many style options
  • Designed specifically for programming and terminal use
  • Smaller file size due to being a single font family

Cons of Iosevka

  • Limited icon support compared to Nerd Fonts
  • Requires manual configuration for optimal appearance
  • Less widespread adoption in developer tools and themes

Code Comparison

Iosevka:

if (condition) {
    doSomething();
} else {
    doSomethingElse();
}

Nerd Fonts:

if (condition) {
    doSomething();
} else {
    doSomethingElse();
}

The code appearance is similar, but Nerd Fonts offers additional icon support for file types, git status, and other programming-related symbols, which can be integrated into code editors and terminal prompts.

Iosevka provides a clean, customizable programming font with a focus on readability and style options. It's ideal for developers who want to fine-tune their font appearance. Nerd Fonts, on the other hand, offers a wide range of patched fonts with extensive icon support, making it more suitable for users who prioritize out-of-the-box compatibility with various developer tools and themes.

16,391

A typeface designed for source code

Pros of Hack

  • Focused on a single, high-quality monospaced font
  • Lightweight and easy to install
  • Designed specifically for source code and terminal use

Cons of Hack

  • Limited to one font family
  • Fewer icon and glyph options compared to Nerd Fonts
  • May require additional patching for certain programming-related glyphs

Code Comparison

Hack:

git clone https://github.com/source-foundry/Hack.git
cd Hack
./build.sh

Nerd Fonts:

git clone --depth 1 https://github.com/ryanoasis/nerd-fonts.git
cd nerd-fonts
./install.sh

Summary

Hack is a streamlined, purpose-built monospaced font for coding, while Nerd Fonts offers a vast collection of patched fonts with extensive icon support. Hack provides a focused, lightweight solution for developers who prefer a clean, minimalist font. Nerd Fonts, on the other hand, caters to users who desire a wide variety of fonts with pre-patched programming-related glyphs and icons.

The installation process for Hack is simpler and faster due to its smaller size and single font focus. Nerd Fonts requires more time and storage space to install but offers greater versatility in font choices and icon options.

Ultimately, the choice between Hack and Nerd Fonts depends on individual preferences for font variety, icon support, and system resource considerations.

Monospaced font family for user interface and coding environments

Pros of Source Code Pro

  • Designed specifically for coding, with careful attention to character distinction and readability
  • Developed by Adobe, ensuring high-quality typography and professional design
  • Lightweight and focused on a single font family, making it easier to integrate into projects

Cons of Source Code Pro

  • Limited glyph set compared to Nerd Fonts, lacking extensive icon support
  • Fewer font variants and styles available
  • No built-in patching system for adding custom glyphs or icons

Code Comparison

Source Code Pro:

if (condition) {
    doSomething();
} else {
    doSomethingElse();
}

Nerd Fonts:

if (condition) {
    doSomething();  // 
} else {
    doSomethingElse();  // 
}

Note: The code itself is identical, but Nerd Fonts allows for the inclusion of icons in comments or as part of the code, which Source Code Pro does not support natively.

JetBrains Mono – the free and open-source typeface for developers

Pros of JetBrainsMono

  • Specifically designed for coding, with a focus on readability and clarity
  • Includes ligatures for common programming symbols
  • Lightweight, with a smaller file size compared to Nerd Fonts

Cons of JetBrainsMono

  • Limited icon set compared to the extensive collection in Nerd Fonts
  • Fewer font variants and styles available
  • May not support as many programming languages or frameworks as Nerd Fonts

Code Comparison

JetBrainsMono:

def example_function():
    return "Hello, World!"

Nerd Fonts:

def example_function():
    return " Hello, World!"

The main difference in the code comparison is the inclusion of a custom icon ( ) in the Nerd Fonts example, which is not available in JetBrainsMono by default. This illustrates the broader icon support in Nerd Fonts, which can be useful for enhancing code readability and visual appeal in certain development environments.

While JetBrainsMono excels in its focused design for coding and ligature support, Nerd Fonts offers a more extensive collection of icons and font variants. The choice between the two depends on individual preferences and specific development needs.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

Nerd Fonts Logo

Iconic font aggregator, collection, and patcher

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

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

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

:mag: :mag: You can 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

A preview of all fonts can be found here.

Font NameOriginal Font Name and Repositoryver*RFN
0xProto Nerd Font0xProto1.603NO
3270 Nerd Font32703.0.1NO
Agave Nerd FontAgave37NO
AnonymicePro Nerd FontAnonymous Pro1.002YES
Arimo Nerd FontArimo1.33NO
AurulentSansMono Nerd FontAurulent Sans Mono (Stephen G. Hartke)NO
BigBlueTerminal Nerd FontBigBlueTerminal (VileR)NO
BitstromWera Nerd FontVera Sans Mono (Bitstream Inc)1.1YES
BlexMono Nerd FontIBM Plex Mono2.004YES
CaskaydiaCove Nerd FontCascadia Code2111.01YES
CaskaydiaMono Nerd FontCascadia Mono2111.01YES
CodeNewRoman Nerd FontCode New Roman (Sam Radian)2.0NO
ComicShannsMono Nerd FontComic Shanns Mono1.3.1NO
CommitMono Nerd FontCommit Mono1.143NO
Cousine Nerd FontCousine1.211NO
D2Coding Nerd FontD2Coding1.3.2NO
DaddyTimeMono Nerd FontDaddyTimeMono1.2.3NO
DejaVuSansMono Nerd FontDejaVu2.37NO
DroidSansMono Nerd FontDroid Sans Mono (Ascender Corp)1.00-113NO
EnvyCodeR Nerd FontEnvy Code R0.79YES
FantasqueSansMono Nerd FontFantasque Sans Mono1.8.0NO
FiraCode Nerd FontFira Code6.2NO
FiraMono Nerd FontFira Mono3.206NO
GeistMono Nerd FontGeist Mono1.200NO
GoMono Nerd FontGo-Mono2.010NO
Gohu Nerd FontGohu TTF, Gohu2.0NO
Hack Nerd FontHack3.003NO
Hasklug Nerd FontHasklig1.2YES
HeavyDataMono Nerd FontHeavyData (Vic Fieger)1NO
Hurmit Nerd FontHermit2.0YES
iM-Writing Nerd FontiA-WriterDec 2018YES
Inconsolata Nerd FontInconsolata3.000NO
InconsolataGo Nerd FontInconsolataGo1.013NO
Inconsolata LGC Nerd FontInconsolata LGC1.5.2NO
IntoneMono Nerd FontIntel One Mono1.3.0YES
Iosevka Nerd FontIosevka29.0.4NO
IosevkaTerm Nerd FontIosevka Term29.0.4NO
IosevkaTermSlab Nerd FontIosevka Term Slab29.0.4NO
JetBrainsMono Nerd FontJetBrains Mono2.304NO
Lekton Nerd FontLekton34NO
Literation Nerd FontLiberation2.1.5YES
Lilex Nerd FontLilex2.400NO
MartianMono Nerd FontMartianMono1.0.0NO
Meslo Nerd FontMeslo1.21NO
Monaspice Nerd FontMonaspace1.0.0YES
Monofur Nerd FontMonofur (Tobias B Koehler)1.0NO
Monoid Nerd FontMonoid0.61NO
Mononoki Nerd FontMononoki1.6YES
M+ Nerd FontMPlus Fonts2023/09NO
Noto Nerd FontNotodivNO
OpenDyslexic Nerd FontOpenDyslexic2.001NO
Overpass Nerd FontOverpass3.0.5NO
ProFont Nerd FontProFont2.3, 2.2NO
ProggyClean Nerd FontProggyClean (Tristan Grimmer)2004/04/15NO
RecMono Nerd FontRecursive Mono1.085NO
RobotoMono Nerd FontRoboto Mono3.0NO
SauceCodePro Nerd FontSource Code Pro2.042YES
ShureTechMono Nerd FontShare Tech Mono1.003YES
SpaceMono Nerd FontSpace Mono1.001NO
Terminess Nerd FontTerminus TTF4.49.3YES
Tinos Nerd FontTinos1.23NO
Ubuntu Nerd FontUbuntu Font0.83NO
UbuntuMono Nerd FontUbuntu Font0.80NO
UbuntuSans Nerd FontUbuntu Sans1.004NO
VictorMono Nerd FontVictor Mono1.5.6NO
ZedMono Nerd FontZed Mono1.2.0NO

*RFN = Reserved Font Name

Variations

Font Installation

Option 1: 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 A nice overview is on the Nerd Font site (but misses the more compact xv archives).

If you want download the latest release of a given font inside a script you can use (replace "JetBrainsMono" with your font):

curl -OL https://github.com/ryanoasis/nerd-fonts/releases/latest/download/JetBrainsMono.tar.xz

Option 2: Homebrew Fonts

Best option if on macOS and want to use Homebrew.

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

brew install font-hack-nerd-font

Option 3: Unofficial Chocolatey or Scoop Repositories

Option for Windows and wanting to use Chocolatey or Scoop.

Chocolatey users can download fonts published to the Chocolatey Community Repository (CCR):

choco install nerd-fonts-hack

Scoop users can download fonts using the Scoop bucket for Nerd Fonts:

scoop bucket add nerd-fonts
scoop install Hack-NF

Option 4: Arch Extra Repository

Option for Arch Linux and wanting to use Extra packages.

Most fonts are available via Arch Extra packages. Some special packages are in AUR.

Option 5: PowerShell Web Installer

Best option for interactive setup guidance or automating installations through PowerShell scripts.

Note:

  • Requires PowerShell 7+ to be installed on Windows, macOS, or Linux.
  • Windows PowerShell 5.1 is also supported.
  • This is a 3rd-party community tool. More information can be found on its GitHub repository here, including advanced installation options.

Run the Interactive Installer

To run the interactive installer, use the following command:

& ([scriptblock]::Create((iwr 'https://to.loredo.me/Install-NerdFont.ps1')))

Install Fonts Directly

To install specific fonts directly, use the following command:

& ([scriptblock]::Create((iwr 'https://to.loredo.me/Install-NerdFont.ps1'))) -Name hack, heavy-data

To install fonts without a confirmation prompt, use:

& ([scriptblock]::Create((iwr 'https://to.loredo.me/Install-NerdFont.ps1'))) -Confirm:$false -Name hack, heavy-data

To get a list of possible font names, use:

& ([scriptblock]::Create((iwr 'https://to.loredo.me/Install-NerdFont.ps1'))) -List All

Option 6: Ad Hoc Curl Download

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

Note: Will not work to get newer fonts as they are not inside the repo anymore.

Linux

mkdir -p ~/.local/share/fonts
cd ~/.local/share/fonts && curl -fLO https://github.com/ryanoasis/nerd-fonts/raw/HEAD/patched-fonts/DroidSansMono/DroidSansMNerdFont-Regular.otf

Note: deprecated alternative paths: ~/.fonts

macOS (OS X)

cd ~/Library/Fonts && curl -fLO https://github.com/ryanoasis/nerd-fonts/raw/HEAD/patched-fonts/DroidSansMono/DroidSansMNerdFont-Regular.otf

Option 7: Install Script

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

Note:

  • Requires (shallow) cloning the repo as of now :-(
  • Will not work to get newer fonts as they are not inside the repo anymore.

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
./install.ps1 FiraCode, Hack
./install.ps1 DejaVuSansMono -WhatIf

Option 8: Clone the Repo

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

Note: Will not work to get newer fonts as they are not inside the repo anymore.

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

Even if you develop you probably do not need the old versions of the font files. With this command you have all commits but not all the old data - it will be loaded only if you check out old binaries (or do a blame):

git clone --filter=blob:none git@github.com:ryanoasis/nerd-fonts

If you want to clone just a sub-directory, use git sparse-checkout.

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

Option 9: 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

font-patcher

Nerd Fonts Patcher

Patching the font of your own choosing:

  • Use the script

    • Download script and its helper files as archive and extract
    • Just downloading the font-patcher script is not enough.
    • Requires: Fontforge, Python 3, python-fontforge and argparse packages
      • Fontforge can be installed as package
      • or on OSX via brew install fontforge
      • or as AppImage
    • Usage, recommended:
    fontforge -script font-patcher PATH_TO_FONT
    
    • Usage, direct (more convenient call, if it works for you):
    ./font-patcher PATH_TO_FONT
    
    • Usage, with Fontforge 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
    
  • Use docker

    • Default parallel tasks
    docker run --rm -v /path/to/fonts:/in:Z -v /path/for/output:/out:Z nerdfonts/patcher [OPTIONS]
    
    • Single process (slow)
    docker run --rm -v /path/to/fonts:/in:Z -v /path/for/output:/out:Z -e "PN=1" nerdfonts/patcher [OPTIONS]
    
    • Specify the parallel tasks number to 10
    docker run --rm -v /path/to/fonts:/in:Z -v /path/for/output:/out:Z -e "PN=10" nerdfonts/patcher [OPTIONS]
    

[!NOTE] The resulting font's family (aka font name) will be set to the original family after CamelCasing, removing whitespace and appending Nerd Font. For example, iosevka term would become IosevkaTerm Nerd Font.

Full options follow, see also page explaining all options:

Nerd Fonts Patcher v3.1.0-6 (4.8.1) (ff 20230101)
usage: font-patcher [-h] [-v] [-s] [--variable-width-glyphs]
                    [--debug [{0,1,2,3}]] [-q] [--careful] [-ext EXTENSION]
                    [-out OUTPUTDIR] [--makegroups [{-1,0,1,2,3,4,5,6}]] [-c]
                    [--codicons] [--fontawesome] [--fontawesomeext]
                    [--fontlogos] [--material] [--octicons] [--powersymbols]
                    [--pomicons] [--powerline] [--powerlineextra] [--weather]
                    [--boxdrawing] [--configfile CONFIGFILE] [--custom CUSTOM]
                    [--dry] [--glyphdir GLYPHDIR] [--has-no-italic] [-l]
                    [--metrics {HHEA,TYPO,WIN}] [--name FORCE_NAME]
                    [--postprocess POSTPROCESS] [--removeligs]
                    [--xavgcharwidth [XAVGWIDTH]]
                    [--progressbars | --no-progressbars]
                    font

Nerd Fonts Font Patcher: patches a given font with programming and development related glyphs

* Website: https://www.nerdfonts.com
* Version: 3.1.0-6
* Development Website: https://github.com/ryanoasis/nerd-fonts
* Changelog: https://github.com/ryanoasis/nerd-fonts/blob/-/changelog.md

positional arguments:
  font                  The path to the font to patch (e.g., Inconsolata.otf)

options:
  -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) (Nerd Font Mono)
  --variable-width-glyphs
                        Do not adjust advance width (no "overhang") (Nerd Font Propo)
  --debug [{0,1,2,3}]   Verbose mode (optional: 1=just to file; 2*=just to terminal; 3=display and file)
  -q, --quiet           Do not generate verbose output
  --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
  --makegroups [{-1,0,1,2,3,4,5,6}]
                        Use alternative method to name patched fonts (default=1)

Symbol Fonts:
  -c, --complete        Add all available Glyphs
  --codicons            Add Codicons Glyphs (https://github.com/microsoft/vscode-codicons)
  --fontawesome         Add Font Awesome Glyphs (http://fontawesome.io/)
  --fontawesomeext      Add Font Awesome Extension Glyphs (https://andrelzgava.github.io/font-awesome-extension/)
  --fontlogos           Add Font Logos Glyphs (https://github.com/Lukas-W/font-logos)
  --material, --mdi     Add Material Design Icons (https://github.com/templarian/MaterialDesign)
  --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 Extra Glyphs (https://github.com/ryanoasis/powerline-extra-symbols)
  --weather             Add Weather Icons (https://github.com/erikflowers/weather-icons)

Expert Options:
  --boxdrawing          Force patching in (over existing) box drawing glyphs
  --configfile CONFIGFILE
                        Specify a file path for JSON configuration file (see sample: src/config.sample.json)
  --custom CUSTOM       Specify a custom symbol font, all glyphs will be copied; absolute path suggested
  --dry                 Do neither patch nor store the font, to check naming
  --glyphdir GLYPHDIR   Path to glyphs to be used for patching
  --has-no-italic       Font family does not have Italic (but Oblique), to help create correct RIBBI set
  -l, --adjust-line-height
                        Whether to adjust line heights (attempt to center powerline separators more evenly)
  --metrics {HHEA,TYPO,WIN}
                        Select vertical metrics source (for problematic cases)
  --name FORCE_NAME     Specify naming source ('full', 'postscript', 'filename', or concrete free name-string)
  --postprocess POSTPROCESS
                        Specify a Script for Post Processing
  --removeligs, --removeligatures
                        Removes ligatures specificed in JSON configuration file (needs --configfile)
  --xavgcharwidth [XAVGWIDTH]
                        Adjust xAvgCharWidth (optional: concrete value)
  --progressbars        Show percentage completion progress bars per Glyph Set (default)
  --no-progressbars     Don't show percentage completion progress bars per Glyph Set

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 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:Z -v ~/myfont/patched:/out:Z nerdfonts/patcher
docker run --rm -v ~/Desktop/myfont/patchme:/in:Z -v ~/Desktop/myfont/patched:/out:Z nerdfonts/patcher --fontawesome

Usually you want the --complete option.

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
    
  • or to specific directory name start:

    ./gotta-patch-em-all-font-patcher\!.sh /Heavy
    

Full options:

Usage: ./gotta-patch-em-all-font-patcher!.sh [OPTION] [FILTER]

    OPTION:
        -c, --checkfont     Create the font(s) in check-fonts/ instead
        -t, --keeptime      Try to preserve timestamp of previously patched
                            font in patched-fonts/ directory
        -v, --verbose       Show more information when running
        -i, --info          Rebuild JUST the readmes
        -j, --jobs          Run up to 8 patch processes in parallel
        -h, --help          Show this help

    FILTER:
        The filter argument to this script is a filter for the fonts to patch.
        The filter is a regex (glob * is expressed as [^/]*, see `man 7 glob`)
        All font files that start with that filter (and are ttf, otf, or sfd files) will
        be processed only.
          Example ./gotta-patch-em-all-font-patcher\!.sh "iosevka"
          Process all font files that start with "iosevka"
        If the argument starts with a '/' all font files in a directory that matches
        the filter are processed only.
          Example ./gotta-patch-em-all-font-patcher\!.sh "/iosevka"
          Process all font files that are in directory "iosevka"

Contributing

See contributing.md

Unstable File Paths

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

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

Other Good Fonts to Patch

Non exhaustive list of fonts that would benefit from being patched but are not included in Nerd Fonts due to their license (proprietary, commercial, etc.):

Project Motivation

See Wiki: Project Purpose

Changelog

See changelog.md

License

See LICENSE