- Notifications
You must be signed in to change notification settings - Fork0
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
License
rspurgeon/nerd-fonts
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
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 asFont Awesome,Devicons,Octicons, andothers.
The following Sankey flow diagram shows the current glyph sets included:
Diagram created using@SankeyMATICmaster
branch file paths arenot considered stable.Verify your repository URI references- cloning this repository isnot recommended (due to Repo size) unless you are going to becontributing to development
- 1 - Manual
- 2 - Release Archive Download
- 3 - Install Script
- 4 - Homebrew Fonts (macOS (OS X))
- 5 - Clone Repo
- 6 - Ad Hoc Curl Download
- 7 - Chocolatey or Scoop (Windows)
- 8 - Arch Linux Repository (Extra, AUR)
- 9 - Patch Your Own Font
Additional Info
Nerd Fonts takes popular programming fonts and adds a bunch of Glyphs.There is also afont patcher available if your desired font isn't already patched.For more high level information see thewiki. If you are looking for the Vim plugin seeVimDevIcons ➶.
If you...
Option 1.
want toquickly grab anindividual font download from thepatched-fonts/
directoryOption 2.
want to download afont family package of variations (bold, italic, etc.) seedownload an archiveOption 3.
want toautomate installing or use inscripts see theInstall ScriptOption 4.
are onmacOS and want to useHomebrew seeHomebrew FontsOption 5.
wantcomplete control then seecloning the repoOption 6.
want to use thecurl
command or use inscripts seeAd Hoc Curl DownloadOption 7.
are onWindows and want to useChocolatey orScoop seeUnofficial Chocolatey or Scoop RepositoriesOption 8.
are onArch Linux and want to useExtra packages seeArch Extra RepositoriesOption 9.
want to patch your own font see theFont Patcher
- AFontForge Python script to patch any font
- Includes an option to createMonospaced (fixed-pitch, fixed-width)ordouble-width (non-monospaced) glyphs
- For more details see theFont Patcher section
54
alreadypatched font families- Over
9,000
glyphs/icons combined(more details)- Current glyph sets include:Powerline with Extra Symbols,Font Awesome,Material Design Icons,Weather,Devicons,Octicons,Font Logos (Formerly Font Linux),Pomicons,Codeicons
- Monospaced (fixed-pitch, fixed-width)ordouble-width (non-monospaced)orproportional glyphs version of each font
- This refers to the Nerd Font glyphs themselves not necessarily the Font as a whole
- A Developer/Contributor providedbash script to re-patch all the fonts
🔍 🔍 You can now search for glyphs easily onNerdFonts.com via theCheat Sheet
SeeWiki: Glyph Sets and Codepoints for more details
*RFN = Reserved Font Name
- no flags given (defaults to onlySeti-UI + Custom andDevicons)
- double(variable/proportional) orsingle(fixed/monospaced) orproportional width glyphs
- Font Awesome
- Font Awesome Extension
- Material Design Icons
- Weather
- GitHub Octicons
- Font Logos (Formerly Font Linux)
- Powerline Extra Symbols
- IEC Power Symbols
- Pomicons
- Codicons
Best option forquickly getting a specificindividual font.
Download the specificpatched font of your choice
Best option if you want anarchive or completefont family of variations (Bold, Italic, etc.).
Fonts are available for download as packages in thelatest release
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
Best option if you want toautomate installing or for use inscripts.
Note:Requires cloning the repo as of now
- 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
- 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
Best option if onmacOS and want to useHomebrew.
All fonts are available viaHomebrew Cask Fonts on macOS (OS X)
brew tap homebrew/cask-fontsbrew install font-hack-nerd-font
Best option forfull control,all orsome of the fonts, orcontributing to development.
A full clone of this repository isnot 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 toshallow clone:
git clone --depth 1
If you want to clone a sub-directory, usegit sparse-checkout
. The following example requiresGit v2.26
:
git clone --filter=blob:none --sparse git@github.com:ryanoasis/nerd-fontscd nerd-fontsgit sparse-checkout add patched-fonts/JetBrainsMono
Option if you want to use the
curl
command or for use inscripts.
mkdir -p~/.local/share/fontscd~/.local/share/fonts&& curl -fLO https://github.com/ryanoasis/nerd-fonts/raw/HEAD/patched-fonts/DroidSansMono/DroidSansMNerdFont-Regular.otf
Note: deprecated alternative paths:~/.fonts
cd~/Library/Fonts&& curl -fLO https://github.com/ryanoasis/nerd-fonts/raw/HEAD/patched-fonts/DroidSansMono/DroidSansMNerdFont-Regular.otf
Option forWindows and wanting to useChocolatey orScoop.
Chocolatey users can download fonts published to theChocolatey Community Repository (CCR):
choco install nerd-fonts-hack
Scoop users can download fonts using theScoop bucket for Nerd Fonts:
scoop bucket add nerd-fontsscoop install Hack-NF
Option forArch Linux and wanting to useExtra packages.
Most fonts are available viaArch Extra packages.Some special packages arein AUR.
The option forpatching yourown font or fullycustomizing 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 donot want to use one of thefonts provided
- you will still need to copy the generated font to the correct font directory on your system
Patching the font of your own choosing:
Use the script
- Download script and its helper files asarchive and extract
- Just downloading the
font-patcher
script is not enough. - Requires: Fontforge, Python 3,
python-fontforge
andargparse
packages- Fontforge can be installed as package
- or on OSX via
brew install fontforge
- or asAppImage
- 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 beabsolute 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
docker run --rm -v /path/to/fonts:/in:Z -v /path/for/output:/out:Z 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 becomeIosevkaTerm Nerd Font
.
Full options follow, see alsopage 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] fontNerd 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.mdpositional 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
./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 $HOMEdocker run --rm -v ~/myfont/patchme:/in:Z -v ~/myfont/patched:/out:Z nerdfonts/patcherdocker run --rm -v ~/Desktop/myfont/patchme:/in:Z -v ~/Desktop/myfont/patched:/out:Z nerdfonts/patcher --fontawesome
Usually you want the--complete
option.
for Contributor or Developer use
re-patchesall 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"
Reference therelease branch andnot themaster 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
- ✅ Use:
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.):
Seechangelog.md
SeeLICENSE
About
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
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Releases
Packages0
Languages
- CSS42.1%
- Shell38.2%
- Python16.1%
- PowerShell3.5%
- Dockerfile0.1%