File: readme.md
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:
Diagram created using @SankeyMATIC
Important Notices
masterbranch file paths are not considered stable. Verify your repository URI references- cloning this repository is not recommended (due to Repo size) unless you are going to be contributing to development
Table of Contents
- 1 - Release Archive Download
- 2 - Homebrew Fonts (macOS/Linux)
- 3 - Install Script
- 4 - Chocolatey or Scoop (Windows)
- 5 - Arch Linux Repository (Extra, AUR)
- 6 - PowerShell Installer (Multi-Platform)
- 7 - Use Fontfallback
- 8 - Clone Repo
- 9 - Patch Your Own Font
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...
Option 1.want to download a font family package of variations (bold, italic, etc.) see download an archiveOption 2.are on macOS or Linux and want to use Homebrew see Homebrew FontsOption 3.want to automate installing or use in scripts see the Install ScriptOption 4.are on Windows and want to use Chocolatey or Scoop see Unofficial Chocolatey or Scoop RepositoriesOption 5.are on Arch Linux and want to use Extra packages see Arch Extra RepositoriesOption 6.are using PowerShell and want an interactive setup or use in scripts see the PowerShell InstallerOption 7.want to install only one font for all fonts see Font FallbackOption 8.want complete control then see cloning the repoOption 9.want to patch your own font see the Font Patcher
Features
- A FontForge Python script to patch any font
- Includes an option to create Monospaced (fixed-pitch, fixed-width) or double-width (non-monospaced) glyphs
- For more details see the Font Patcher section
67already patched font families- Over
10,000glyphs/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) or double-width (non-monospaced) or proportional glyphs version of each font
- This refers to the Nerd Font glyphs themselves not necessarily the Font as a whole
- A Developer/Contributor provided bash script to re-patch all the fonts
Glyph Sets
The currently used sets are listed in src/glyphs/README.md.
: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
Patched Fonts
A preview of all fonts can be found here.
*RFN = Reserved Font Name
Variations
- no flags given (defaults to only Seti-UI + Custom and Devicons)
- double (variable/proportional) or single (fixed/monospaced) or proportional width icon-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
Font Installation
Some of the options below just help you to download the font file(s) (i.e. .ttf or .otf) or archives of font files.
These must be installed on your system, depending on your OS. Usually (double) clicking the font files individually does the trick.
Ask your OS' community if installing a font file is a problem.
`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 you want to use Homebrew.
All fonts are available via Homebrew Cask on macOS or Linux
brew install font-hack-nerd-fontOn Linux you have to add --cask after install.
`Option 3: Install Script`
To install fonts from (latest) release
use this script.
Best option if you want to automate installing or for use in scripts.
Only available for Linux / MacOS. It downloads the release artifacts of the latest or any
other release and installs the files.
If you install all patched Fonts: Warning: This is a lot of Fonts adding up to a large size
The script is a standalone tool that you can download individually, use like the following.
No need to clone the complete repository (which does not contain all patched fonts anyhow).
curl -s https://raw.githubusercontent.com/ryanoasis/nerd-fonts/master/install.sh -o install.sh
chmod u+x install.sh
./install.sh helpExamples:
./install.sh list
./install.sh install # interactive mode
./install.sh install Hack
./install.sh install HeavyData
./install.sh install Hack heAvYdatA # not case sensitive
./install.sh install all
./install.sh --verbose install DaddyTimeMono
./install.sh list --release v3.2.1
./install.sh remove --dry`Option 4: 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-hackScoop users can download fonts using the Scoop bucket for Nerd Fonts:
scoop bucket add nerd-fonts
scoop install Hack-NF`Option 5: 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 6: PowerShell Installer`
Best option for interactive setup guidance or automating installations through PowerShell scripts.
PSModule NerdFonts
This is a 3rd-party community tool. More information can be found on its GitHub repository here.
To install the module:
Install-PSResource -Name NerdFonts
Import-Module -Name NerdFontsTo install one font:
Install-NerdFont -Name 'FiraCode' # Tab completion works on namePowershell Web Installer
This is a 3rd-party community tool. More information can be found on its GitHub repository here.
- Requires PowerShell 7+ to be installed on Windows, macOS, or Linux.
- Windows PowerShell 5.1 is also supported.
To run the interactive installer, use the following command:
& ([scriptblock]::Create((iwr 'https://to.loredo.me/Install-NerdFont.ps1')))To install specific fonts directly, use the following command:
& ([scriptblock]::Create((iwr 'https://to.loredo.me/Install-NerdFont.ps1'))) -Name hack, heavy-data`Option 7: Font Fallback`
Most systems have a mechanism to search for an alternative font when the current font does not
have a glyph that is needed. For example you edit a Latin text and insert a Chinese character,
that glyph is taken not from your active font (it does not have it) but from some other font.
For this font fallback you can use one of the SymbolsOnly fonts.
For fontconfig based systems like Linux you can improve the behavior with the10-nerd-font-symbols.conf configuration file, that needs to be manually installed.
- Pro: One symbol font is sufficient for all text fonts
- Con: Scaling and placement of the fallback symbols can be hit or miss
`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 1Even 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 [email protected]:ryanoasis/nerd-fontsIf you want to clone just a sub-directory, use git sparse-checkout.
git clone --filter=blob:none --sparse [email protected]: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
Patching the font of your own choosing:
Use the script
- Download script and its helper files as archive and extract
- Just downloading the
font-patcherscript is not enough. - Requires: Fontforge, Python 3,
python-fontforgeandargparsepackages- Fontforge can be installed as package
- or on OSX via
brew install fontforge - or as AppImage
- Usage, recommended:
textfontforge -script font-patcher PATH_TO_FONT- Usage, direct (more convenient call, if it works for you):
text./font-patcher PATH_TO_FONTUsage, with Fontforge AppImage
Note:
chmod u+xthe 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$PWDshorthand.
text./FontForge.AppImage -script $PWD/font-patcher $PWD/BaseFont.ttf -out /tmpUse docker
- Default parallel tasks
textdocker run --rm -v /path/to/fonts:/in:Z -v /path/for/output:/out:Z nerdfonts/patcher [OPTIONS]- Single process (slow)
textdocker 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
textdocker run --rm -v /path/to/fonts:/in:Z -v /path/for/output:/out:Z -e "PN=10" nerdfonts/patcher [OPTIONS]- Update docker image
textdocker pull nerdfonts/patcher- Run interatively to get full control of
font-patcherinvocation and all debug output and error messages:
textdocker run -it -v /path/to/fonts:/in:Z --entrypoint=/bin/sh nerdfonts/patcherAnd then in the container for example:
text/ # cd /in /in # fontforge --script ../nerd/font-patcher [OPTIONS] your_font.ttf
[!NOTE]
The resulting font's family (aka font name) will be set to the original family after CamelCasing, removing whitespace and appendingNerd Font. For example,iosevka termwould becomeIosevkaTerm Nerd Font.
Full options follow, see also page explaining all options:
Nerd Fonts Patcher v3.5.0-16 (4.27.2) (ff 20230101)
usage: font-patcher [--careful] [--debug [{0,1,2,3}]] [--extension EXTENSION]
[--help] [--makegroups [{-1,0,1,2,3,4,5,6}]] [--mono]
[--outputdir OUTPUTDIR] [--quiet] [--single-width-glyphs]
[--variable-width-glyphs] [--version]
[--braille [{rectangle,circle,gapless}]] [--complete]
[--codicons] [--fontawesome] [--fontawesomeext] [--fontlogos]
[--material] [--octicons] [--pomicons] [--powerline]
[--powerlineextra] [--powersymbols] [--weather]
[--adjust-line-height] [--boxdrawing] [--cell CELLOPT]
[--configfile CONFIGFILE] [--custom CUSTOM] [--dry]
[--experimental EXPERIMENTAL] [--glyphdir GLYPHDIR]
[--has-no-italic] [--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.5.0-16
* 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:
--careful Do not overwrite existing glyphs if detected
--debug [{0,1,2,3}] Verbose mode (optional: 1=just to file; 2*=just to terminal; 3=display and file)
--extension, -ext EXTENSION
Change font file type to create (e.g., ttf, otf)
--help, -h Show this help message and exit
--makegroups [{-1,0,1,2,3,4,5,6}]
Use alternative method to name patched fonts (default=1)
--mono, -s Create monospaced font, existing and added glyphs are single-width (implies --single-width-glyphs)
--outputdir, -out OUTPUTDIR
The directory to output the patched font file to
--quiet, -q Do not generate verbose output
--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)
--version, -v Show program's version number and exit
Symbol Fonts:
--braille [{rectangle,circle,gapless}]
Add Braille Glyphs, can pass a string to control style (optional: *rectangle, circle, gapless)
--complete, -c 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)
--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)
--powersymbols Add IEC Power Symbols (https://unicodepowersymbol.com/)
--weather Add Weather Icons (https://github.com/erikflowers/weather-icons)
Expert Options:
--adjust-line-height, -l
Whether to adjust line heights (attempt to center powerline separators more evenly)
--boxdrawing Force patching in (over existing) box drawing glyphs
--cell CELLOPT Adjust or query the cell size, e.g. use "0:1000:-200:800" or "?"
--configfile CONFIGFILE
Specify a file path for configuration file (see sample: src/config.sample.cfg)
--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
--experimental EXPERIMENTAL
Enable experimental/unstable feature, get hints with "?" or "help"
--glyphdir GLYPHDIR Path to glyphs to be used for patching
--has-no-italic Font family does not have Italic (but Oblique/Slanted), to help create correct RIBBI set
--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 specified in 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 SetExamples
./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 --mono --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 --fontawesomeUsually you want the --complete option.
Gotta Patch 'em All Font Patcher!
for Contributor or Developer use
re-patches all fonts in the unpatched directory:
text./gotta-patch-em-all-font-patcher\!.shcan optionally limit to specific font name pattern:
text./gotta-patch-em-all-font-patcher\!.sh Hermitor to specific directory name start:
text./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
-p, --purge Force purging of the destination in patched-fonts/
-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"
ENVIRONMENT:
NERDFONTS: You can supply any font-patcher arguments here that will
be appended to all internal font-patcher calls. For example
NERDFONTS="--dry --debug 2" ./gotta-patch-em-all-font-patcher!.shContributing
See contributing.md
Common Problems
Some solutions can be found on the Wiki, if you are lucky. For example hints to use the pager less are there:
- https://github.com/ryanoasis/nerd-fonts/wiki/FAQ-and-Troubleshooting
- https://github.com/ryanoasis/nerd-fonts/wiki/Terminal-Emulators
- https://github.com/ryanoasis/nerd-fonts/wiki/Reporting-Issues
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
- For example:
- :white_check_mark: Use:
https\://github.com/ryanoasis/nerd-fonts/tree/**v3.0.0**/patched-fonts/Hermit/Regular/HurmitNerdFont-Regular.otf - :white_check_mark: Use:
https\://github.com/ryanoasis/nerd-fonts/blob/**0.9.0**/patched-fonts/Hermit/Medium/complete/Hurmit%20Medium%20Nerd%20Font%20Complete.otf - :x: Instead of:
https\://github.com/ryanoasis/nerd-fonts/blob/<del>master</del>/patched-fonts/Hermit/Medium/complete/Hurmit%20Medium%20Nerd%20Font%20Complete.otf
- :white_check_mark: Use:
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
Changelog
See changelog.md
License
See LICENSE
File: backers.md
Backers
Special thanks to these backers for their support:
File: changelog.md
CHANGELOG
This project is using Semantic Versioning 2.0.0
v3.5.1
It was too hot, we need a bugfix release this time.
Bugs
- Actually put in the new promised Devicons #2057
- SpaceMono: Remove fi/fl ligs #2062
- Flatten forgotten font subdirs
v3.5.0
Sun-Kissed Release, Running Hot
Heat wave edition
Still sizzling you get (just some notable things):
- Three glyph set updates
- Finally Braille glyphs matching the 'cell' size exactly
- Two new fonts
- All fonts updated
Thank you to all the people who contributed - by reporting issues, engaging in discussions, or providing code! โค๏ธ
Breaking
- D2Coding is renamed to D2Koding #2052
- Flatten font subdirs #2054
Fonts
- Add Annotation Mono #2049
- Add Google Sans Code #2050
- Update 0xProto to 2.502 @my4ng #1873
- Update AdwaitaMono to 34.1 #2048
- Update Agave to v38 #2048
- Update Arimo to 1.33-autohint #2048
- Update Cousine to 1.241 #2048
- Update DaddyTimeMono to 1.2.3 17-9-2025 #2048
- Update Departure Mono to v1.500 @rektdeckard #1874
- Update GeistMono to 1.8.0 @Tejakshaya #2013
- Update Inconsolata-LGC to 3.201 #2048
- Update Iosevka to 34.8.0 #2048
- Update Iosevka Term to 34.8.0 #2048
- Update Iosevka Term Slab to 34.8.0 #2048
- Update Lilex to 2.700 #2048
- Update Monaspice to v1.400 @injust #1938
- Update MPlus to 1.100 #2048
- Update SpaceMono to 1.003 #2048
- Update Ubuntu Sans Mono to 1.100 #2048
- Fix ComicShannsMono: Flip
questiondown#1963 - Fix DejaVuSansMono: Fix monospaced #1865
- Fix SpaceMono: Remove arrow-calts #1960
- Fix SymbolsOnly 2 cell wide #1992
Icons
- Add Braille icons (with generator) #1980
- Add FontAwesome
fa-volume#2030 - Add Obsidian icon #2031
- Add Wireshark icon #2031
- Add zsh icon #1979
- Update Codicons to 0.0.45 #2027
- Update Devicons to v2.17.0 @joeriddles #1900
- Update Font Logos to 1.4.0 #2029
- Add MDI scale-groups #2033
Features
- Make progress bars more compact #2022
- Expand
--has-no-italicto other slanted styles than Oblique #2032 - Optionally center most icons in 2 cell space #2034
- Optionally scale non-mono icons to be at least as large as mono @danielwe #1926
Bugs and improvements
- Downgrade install.sh to bash 3 #1866
- font-patcher: Fix patching of fonts with slashes in name #1881
- font-patcher: Fix removal of
For Powerline#1882 - font-patcher: Implement rounding in
scale_bounding_box()@GoldPigg #1974 - font-patcher: Obey two-cell scale rule with c alignment #2020
- Fix Material Design icon names #2023
- Fix symbolfont handling if glyphs have multiple codepoints #2024
- Fix some glyph are not visually centered when patching monospaced variation @OzelotVanilla #1998
- Casks: Switch to
tar.xzarchives #2041 - MacOS compatibility for
gotta-patch-em-all!.sh@shaunchokshi #1976 - Update outdated GitHub Actions @pgoslatara #1981
- Allow more detailed information in
config.cfg#2053 - gotta-patch-em: Add flag to enforce patched-fonts/ subdir purging (for rename on releases) 1372be5 730af09
Website and docs
- Improve font preview #2038
- Fix cheatsheet footer @sliva0 #1855
- Fix link in
README@injust #1916 - Fix broken emoji key link in
contributing.md@NaufalK25 #2016
v3.4.0
Easter Release without Eggs
Mainly a font update release. No surprises here (we hope).
Breaking
- Remove patcher option
--use-single-width-glyphs(use-sor--monoinstead)
Fonts
- Add Adwaita Mono @badlydrawnface #1819
- Add Atkinson Hyperlegible Mono @joshestein #1802
- Update 0xProto to 2.300 @my4ng #1803
- Update Cascadia Code to 2407.24 #1844
- Update Geist Mono to 1.401 #1838
- Update InconsolataLGC to 1.13 #1839
- Update Iosevka to 33.2.1 #1845
- Update Lilex to 2.600 #1840
- Update Martian Mono to 1.1.0 #1841
- Update Monaspace to 1.200 #1846
- Update MPlus to 1.007 #1842
- Update Noto (Sans and Serif) to 2.015 #1843
- Update Ubuntu Sans to 1.006 #1836
Icons
- Add new CSS icon @skoch13 #1762
- Manually optimize many Devicon icons #1779
Features
- Add possibility to create single width icons without touching existing glyphs #1773
- Add possibility to manually set target cell size (
--cell) #1773 - The patched fonts in
otfformat are now much smaller (comparable tottf) #1851 - Intermediate icon storage is not rounded anymore #1849
Bugs and improvements
- Fix few missing new Devicons @hasecilu #1768
- Fix glitches in Devicon icons #1779
- Fix self-patching on Windows #1761
- Fix handling of some glyphs in
Nerd Font PropoandSymbolsOnly#1852
v3.3.0
The Post-Halloween Release
The biggest change is the update of Devicons by switching from the unmaintained repo
to a more maintained fork that has lots of asked for icons. Some very old icons have
been dropped now; hope noone is really affected. See the description in #1691 for
a complete list.
Breaking
- Because Devicons are updated some old icons were dropped (replaced) #1691
Fonts
- Add Departure Mono @rektdeckard #1709
- Add Monaspace weight ExtraLight (Italic) #1670
- Update 0xProto to 2.201 @my4ng #1623
- Update Intel One Mono to 1.4.0 #1741
- Update Monaspace to v1.101 @Stealthii #1630
- Fix upstream Gohufont 14 question mark bug #1654
Icons
- Switch to devicons/devicon #1691
- Add Chuck and Vitruvian Man #1740
- Add Progress Indicators a la Fira Code #1733
- Update Font Logos to 1.3.0 #1721
- FontAwesome: Scale glyphs a bit smaller #1722
- Improve Bazel icon @zaucy #1610
- Improve Ruby and Firebase icons
Features
- Add shell based cheat-sheet script @hasecilu #1694
- Add fontconfig file to SymbolsOnly release archive (for repackagers) #1713
- Unify configuration files for font-patcher and gotta-patch-em (format changed) #1613
Bugs and improvements
- Fix Powerline glyphs position and size in some cases #1727
- font-patcher: Allow to rehint glyphs via config file #1613
- font-patcher: don't double-shrink heavy angle brackets @gibfahn #1617
- font-patcher: Fix behavior when trying to patch non-font files #1648
- font-patcher: Fix escaping warning
- gotta-patch-em: Remove post processing
- Increase Powerline overlap (big triangles and more) #1724
- Increase weather icons 'other' icons scale #1726
- ShareTechMono: Fix fi/fl ligs #1631
- PowerShell install @jpawlowski #1701
Website and docs
Again a lot has been done by various people, thank you all!
v3.2.1
This bugfix release is mainly because of the Fira Code progress indicator glyphs. These are used by some applications, and usually could be used via fontfallback from any font (because the codepoints were un-occupied in the Nerd Fonts). But with adding more FontAwesome glyphs we utilized that codepoints for the new glyphs, breaking this common setup.
To fix that we keep these codepoints (there are 9 glyphs) free and un-occupied. So the usual fallback scheme will continue to work.
Please see below for a list of codepoint that change with this release (which were new in 3.2.0), so I count that not really as breaking, because they were just some days ago (accidentally) introduced.
| name | v3.2.0 codepoint | v3.2.1 codepoint |
|---|---|---|
fa_less_than |
EE00 |
EFC3 |
fa_less_than_equal |
EE01 |
EFC4 |
fa_memory |
EE02 |
EFC5 |
fa_microphone_lines_slash |
EE03 |
EFC6 |
fa_money_bill_wave |
EE04 |
EFC7 |
fa_money_bill_1_wave |
EE05 |
EFC8 |
fa_money_check |
EE06 |
EFC9 |
fa_money_check_dollar |
EE07 |
EFCA |
fa_not_equal |
EE08 |
EFCB |
fa_palette |
EE09 |
EFCC |
fa_square_parking |
EE0A |
EFCD |
fa_diagram_project |
EE0B |
EFCE |
| this moves: | ||
fa_avianex |
F0E6 |
EFC2 |
| these swap: | ||
fa_diamond |
F219 |
F29F |
fa_gem |
F29F |
F219 |
fa_cloudsmith |
F16A |
F167 |
fa_youtube |
F167 |
F16A |
Codepoint shift :warning: (only relative to 3.2.0)
- Reorder some FontAwesome glyphs #1596
(see list above)
Bugs
- Remove Ubuntu 'fi' and 'fl' ligs #1597
Improvements for package maintainers
- Add individual licenses to font database
fonts.jsonfor package maintainers #1599 - Add sha256 checksums to release (commit c2cd3cdf)
v3.2.0
The Easter release. Lets see which eggs can be found:
Fonts
- Add Recursive Mono #1576
- Add Ubuntu Sans #1583
- Add Zed Mono @cabrinha #1504
- Update 0xProto to version 1.603 @junoslukan #1516 #1575
- Update Commit Mono to 1.143 #1575
- Update Geist Mono to 1.200 #1575
- Update IBM Plex Mono to 2.004 (v6.4.0) #1575
- Update InconsolataLGC to 1.5.2 #1575
- Update Intel One Mono to 1.3.0 @landfillbaby #1558
- Update Iosevka to 29.0.4 @iruoy #1497
- Update Lilex to 2.400 #1575
- Update Noto to 2.013/2.014 #1478
- Update SourceCodePro to 2.042/1.062 #1444
- Update Terminus to 4.49.3 #1571
- Update Victor Mono to 1.5.6 #1575
- Fix ComicShanns carons (pending upstream) #1546
Icons
- Add Ada icon #1577
- Add Astro icon @roginfarrer #1464
- Add inverse Powerline arrow heads #1490
- Add Prettier icon @ronitkrshah #1470
- Update Codicons to 0.0.35 #1544
- Update Font Awesome to 6.5.1 (partially) #1563
- Update Font Logos to 1.2.0 #1585
Bugs and improvements
Only some notable fixes listed here
- docker: Allow blancs in filenames
- docker: Include logfile in output
- docker: Run parallel by default @robk #1508
- font-patcher: Prevent excessively tall icons in mono fonts #1564
- Increase Powerline overlap (only rounded) #1551
- name-parser: Add "thick" weight for Lilex
- name-parser: Fill short and long name as TypoFamily (for VSCode etc) #1442
- name-parser: Fix Terminus-Bold-Italic parsing
- name-parser: Sort Widths before Weights
- Manually fix several icons with corrupt paths
Website and docs
A lot of work has been done here by various people, thank you all!
v3.1.1
This release is mainly a bugfix release: It undoes the breaking naming change of the
last release which was an unwanted consequence of Fix naming problem (Visual Studio) #1406
See #1434 for a discussion.
Because these changes were already approved they are also included:
New fonts and icons
- Monaspace: Add Light weight #1433
- Add TOML icon @cpea2506 #1436
v3.1.0
This release fixes some bugs and adds fonts. More icons will come with the next release.
We also sunset in-repo releases (new fonts will only be released as release artifact) #1360
New fonts and updates
- Add 0xProto @piraces #1381
- Add Cascadia Mono #1412
- Add Commit Mono #1414
- Add D2Coding #1413
- Add Envy Code R #1318 (already since 3.0.2b)
- Add Geist Mono @QuiiBz #1398
- Add IntelOne Mono @ (already since 3.0.2b)
- Add Iosevka Term Slab #803
- Add Martian Mono @skryukov #1092
- Add Monaspace @julien-blanchon #1405
- Update Lilex to v2.3.0 #1356
- Update MPlus #1357
Fixes
- Fix naming problem (Visual Studio) #1406
- Fix fi-ligature in Noto Sans Mono #1400
- Fix logging error in font-patcher @lolicon0930 #1287
Features
- Add Common Lisp and Scheme icon #1428
- Add Fennel icon @Grazfather #1129
- Add Neovim icon @georgeguimaraes #1391
- Update Font Logos to v1.1.1 @hasecilu 1427
- Update Windows icon to Windows 11 #1290
- Add font-patcher option to specify metrics source #1300
- Add font-patcher option to specify naming source #1319 #1282
- Add font-patcher option to specify box drawing glyph behavior #1300
- test-fonts.sh: allow wrapping at any number @hasecilu #1270
Website and docs
A lot of work has been done here by various people, thank you all!
v3.0.2
One general fix and some font specific ones
Note the breaking changes introduced with the v3.0.0 release.
If you miss icons, check #1190 and probably https://github.com/loichyan/nerdfix
Fixes
- Bugfix
CodiconCircles #1261 - Fix
DaddyTimeMono NFM#1244 - Fix
fsSelectionfor--has-no-italic(Bitstream Vera+DejaVu) #1255 - Fix naming of some fonts of BlexMono and GohuFont
Features
- Allow not renaming the font #1282 for
Cascadia Codeself-patcher (#1242) - Create
tar.xzpacks now automated #1235 - Improve cheat sheet @rszyma #1252 #1254
test-fonts.sh: allow wrapping at any number by @hasecilu #1270
v3.0.1
This bugfix release handles the following issues.
Fixes
- Revive some ligature removal (only of problematic ligs)
- Correct Octicons scale (of very few icons)
- Fix logging with AppImage
fontforge - Drop box-drawing glyphs from Symbols Only fonts
- Reintroduce upstream-dropped
oct-file-symlink-directory - Reintroduce old style
oct-file-directoryincustom- - Fix wrong
fsSelectionbit - Fix
filigature in Ubuntu - Fix scaling of heavy brackets (mostly in Nerd Font Mono)
- Fix Ubuntu Mono Condensed font property (upstream bug)
- Fix small scaling glitch for 4 Codicons
- Correct CaskaydiaCove's version string (which contains the autohinter)
v3.0.0
This major release introduces some breaking changes:
Breaking 1: Naming
This release fixes some long standing issues that are due to the naming of the fonts: There is a completely new naming scheme. This might be inconvientient for existing setups, sorry.
- Some fonts will have
Nerd Fontin the name while other have it abbreviated asNF. This is needed because some names just were too long. (Same forNerd Font MonoandNFM.) - There are no
Windows Compatiblefonts anymore. All fonts work on all platforms. - The
Completefrom the font names (and the repo directories) has been dropped (Complete is the new normal). - The name parts will be ordered as expected with style and weight last (
Somefont Bold Nerd Font->Somefont Nerd Font Bold). - The filename will have no blanks anymore.
Breaking 2: Material Design Icons Codepoints
The old Material Design Icon codepoints are finally dropped. Due to an historic mistake we placed them in between some asiatic glyphs, breaking that script.
Since v2.3.0 the (updated and expanded) Material Design Icons have new codepoints in the 5 digit region.
- Dropped codepoints
F500... and class namesnf-mdi-* - New codepoints
F0001... and class namesnf-md-* - The whole discussions are here: https://github.com/ryanoasis/nerd-fonts/issues/365
- A translation table is available here: https://github.com/ryanoasis/nerd-fonts/issues/1059#issuecomment-1404891287
- There are tools out there that probably can update your configuration.
Otherwise this is a 'Update release', so now the good stuff:
Updates
- Update
Agaveto v37 - Update
Arimoto 1.33 - Update
DaddyTimeMonoto 1.2.3 - Update
Fira Monoto 3.206 - Update
Go Monoto 2.010 - Update
Hermitto 2.0 - Update
IBM Plexto 2.3 - Update
Iosevkato 22.1.0 - Update
Literationto 2.1.5 - Update
Lilexto 2.000 - Update
mononokito 1.6 - Update
MPlusto ... current - Update
Overpassto 3.0.5 - Update
Roboto Monoto 3.0 - Update
Source Code Proto 2.038 - Update
Terminusto 4.49.2 - Update
Victor Monoto 1.5.4 - Update the Octicons set to 18.3.0
Features
- New font
ComicShannsMono - New variant in release
Nerd Font Propofor GUI usecases - Patch in heavy angle brackets
- Patch in boxdrawing glyphs (if the font has no complete set)
- Repair Panose info if source font has broken data
- Reform PowerlineExtra sizing
- Autocreate a
FontPatcher.zipfromHEAD - Create a json database with css names
- Disentangle
Iosevkainto two packets (one forIosevka Term) - Add option to manipulate
xAvgCharWidth(needed rarely by self-patchers) - Add option to allow italic-less fonts with oblique
- Add
--debugand--drytofont-patcher - Add logging into file to
font-patcher - Add
NERDFONTSenvironment variable to transport options throughgotta-patch-em
Improvements
- Fix
Caskaydia Codeheight different toCascadia Code(hinting problem) (font is nowttfinstead ofotf!)
Fixes
- Fix baseline to basline distance (line gap) for some fonts
- Fix weather icons cloud scaling
- Fix UniqueID of the fonts
- Fix
Bitstream Veraname: Is nowBitstrom Weradue to licensing issue - No fix, but: Drop support for Python 2
v2.3.3
Fixes
- Fix licenses in archives 8a749ab21
- Fix Nerd Fonts Symbols Only metrics 4939ac5
v2.3.2
Fixes
- Update
JetBrains Monoto 2.304 c6b3b0841 - Cover alternate unicode encodings (for Input Mono) by @nathanielevan #1058
- Fix some Nerd Font Mono too wide #1062
- Fix line gap calculation #1060
v2.3.1
Fixes
- Fix windows Mono family names with --makegroups f240e073
v2.3.0
The v2.3.x release is an interim release that tackles a lot technical issues and some updates. It is the preparatory step for v3.0.0 that will update 'everything' and introduce new concepts. See #1074.
Features
- Process
TTCfiles #783 - Preserve existing bitmaps #939
- Symbol scaling in nonmono (down to 2 'widths') #748
- Add New Material Design Icons to its own region by @earboxer #773
- Calculate line gap correctly #1060
Updates
- Update
Inconsolatato v3.000 #775 - Update
3270fontto v3.0.1 #948 - Update
Mononokito 1.5 fec587385 - Update
Setiglyph set #978 - Update
JetBrains Monoby @rluvaton #1053
Improvements
install.sh --remove#822- Stable codepoints #778
- Add
-WindowsCompatibleOnlyoninstall.ps1by @ev-dev #841 - Sunset ligature removal #977
- Fix Iosevka Family names #1019
- Fix unequal weather icon scale #916
- Use Fontforge January 2023 Release #1037
- Warn if sourcefont is a variable font
VF#960 - Improve Assembly icon by @ignamartinoli #990
Fixes
- Fix
fontconfig#920 - Fix scaling related rounding error #921
- Fix hasklug ligature #938
- Avoid patching proportional sources #912
- Fix JetBrains Mono
!=ligature #964 - Fix crash on some custom sets #1006
- Sanitize output filenames #1029
- Fix unexpected 'Book' SubFamily #1047
- Fix licenses in archives 8a749ab21
- Fix some Nerd Font Mono too wide #1045
- Fix line gap calculation #943
Next Release Outlook
The v3.0.0 release will bring two bigger changes:
Material Design Icons
The Material Design Icons have to move codepoints. Historically we patch them in between F500 - FD46; but part of that range is needed for Chinese and other glyphs. With #773 and Plan 5+ of #365 their new home will be after F0001. And they grow considerably.
The v2.3.x release has both, the 'old' and the 'new' codepoints to enable you an easier transision. Please change already now your prompts and other uses to the new codepoints. Release v3.0.0 will finally drop the old codepoints (F500 - FD46).
Naming
Naming will also change. The name parts will move to places where they are customarily expected (e.g. weight and style comes last). This will fix some more problems. Probably we will drop the Complete monicker, as ... everyone uses the complete versions, it just takes precious space in the names.
The details are not fixed yet, follow #1074 to keep up to date.
v2.2.2
This makes all the prepached Nerd Fonts monospaced again, like v2.1.0 had it.
New Features
- Make Nerd Fonts Monospaced Again by @Finii in #764
- Add new icons:
- Add icons for Emacs and Orgmode by @ashfinal in #833
- Add Kotlin icon by @Finii in #862
Updates / Improvements
- Update Hasklig readme by @chezbgone in #910
- font-patcher:
- Correct python module missing message by @Finii in #798
- Do not overwrite glyphs that are needed for basic glyphs by @Finii in #914
- Correct mono scaling of thin glyphs by @Finii in #749
- Allow to specify custom symbolfont with absolute path by @Finii in #794
- Allow glyphs with altuni for exactEncoding by @Finii in #793
v2.2.1
Fixes
- Monospaced fonts wrong width (b71a9e474b4f2e8c416c32949e6c0f76949a14ee)
v2.2.0
New Features
- Add new fonts:
- Add Lilex font by @adavidzh in #474
- Add new icons:
- Add Crystal icon by @mamantoha in #429
- Add PureScript Icon by @andys8 in #545
- Add the official Puppet icon as a custom icon by @dhollinger in #652
- Add Docker support by @mdschweda in #449
- Add support for codicons by @cstrahan in #705
- Use fontforge 2022 for release by @Finii in #884
Updates / Improvements
- Update various fonts:
- Update Cascadia Code to its latest release by @LuanVSO in #433
- Update Cascadia Code to version 2007.01 by @natebwangsut in #499
- Update Cascadia to 2111.01 by @Finii in #723
- Update JetBrains Mono to 1.0.3 by @alindeman in #437
- Update JetBrains Mono to 1.0.5 by @alindeman in #459
- Update JetBrains Mono to version v2.001 by @moritzdietz in #518
- Update JetBrains Mono to version v2.210 by @moritzdietz in #540
- Update JetBrains Mono to version v2.225 by @moritzdietz in #572
- Update JetBrains Mono to version v2.242 by @moritzdietz in #648
- Update JetBrains Mono to version v2.251 by @moritzdietz in #776
- Upgrade Victor Mono to 1.4.1 by @ea2809 in #516
- Update Fira Code to v3.1 by @iamolivinius in #473
- Update Fira Code to latest version by @gitfool in #497
- Update Fira Code to latest version by @gitfool in #704
- Update Hasklig to v1.2 by @Tehnix in #555
- Update Iosevka font to 6.1.3 by @FollieHiyuki in #622
- Update Symbols-only fonts for #249 and #429 by @polyzen in #461
- Automatic symbols only font generation by @Finii in #801
- Update source icons:
- Update font-logos with new linux icons by @daniruiz in #551
- Update Font Logos to 1.0.1 by @Finii in #859
- Add new language translations:
- Add pt-pt language to readme.md by @LiTO773 in #431
- Add Hindi version of readme.md. by @HarshalRathore in #707
- font-patcher:
- Take the style from the filename if it's longer than the subfamily (fixes #257) by @duganchen in #526
- font-patcher: remove_ligatures() never displays warnings by @fracsinus in #644
- Allow setting custom glyph storage directory by @epsilon-0 in #613
- Give meaningful error messages on trivial open fails by @Finii in #699
- Feature: correct small rendering by @Finii in #761
- Docu
- Add additional Archlinux links by @quinnjr in #462
- Add AppImage patching instructions to Readme by @adrian5 in #624
- Add sparse-checkout example to only clone one font by @vnys in #625
- List AUR packages for Jetbrains & Victor Mono by @avalonv in #887
- Allow running gotta-patch-em-all from any dir by @RL-S in #863
Fixes
- Fix #412 by @onokatio in #439
- CI's error by @get-me-power in #493
- Change bearing to int, since an int is expected by @WhyNotHugo in #471
- Add Caskyadia Mono to RFN replacements by @KexyBiscuit in #681
- Bugfix/fstype font does not open by @Finii in #687
- font-patcher: Use correct source font metrics by @Finii in #593
- font-patcher: Reintroduce fsType fix by @Finii in #692
- font-patcher: Set SFNT Version by @Finii in #693
- font-patcher: Remove obsolete metadata on glyph exchange by @Finii in #711
- font-patcher: Allow patching without --ext by @Finii in #720
- font-patcher: Improve 'Mono' compatibility with Windows by @Finii in #695
- font-patcher: Copy selection instead of continuously regenerating by @Finii in #736
- Handle TTCs gracefully by @Finii in #752
- Bugfix monospaced glyph scaling by @Finii in #732
- patcher: Fix grave (backtick) zero width by @Finii in #860
- Fix Noto too wide by @Finii in #830
- Docu
- Fix European Portuguese and Spanish translations errors by @gusbemacbe in #446
- Restore new line in README.ja by @delphinus in #447
- Update link to cheat sheet in readme's by @polyzen in #457
- Fix misleading note: Only for Linux & macOS (OS X) | Option 3: Install Script by @GiorgosXou in #671
- readme.md (et al): fix FQDN for input font (input.djr.com) by @atomicstack in #680
- Update command about Homebrew cask option by @ktanoooo in #689
- Replace non-existent polish words with other words that do exist in readme_pl.md. by @MarcelskyXD in #710
- font info: Remove references to 'Terminess' from non-Terminus fonts by @Finii in #724
- Correct example patch call through fontforge [skip ci] by @Finii in #827
- Fix grammar mistakes in readme_uk.md by @dev99problems in #853
- Fix (jetbrain-mono-font): installation guide by @GervinFung in #867
- Typos
- spelling: hermut -> hurmit by @Harwood in #537
- Fix homebrew cask tap command by @lepht in #525
- Fix typo in Cascadia Code README by @adrian5 in #529
- Fix typo: partcular -> particular by @alexislefebvre in #550
- Fix typo: partcular -> particular #550 by @alexislefebvre in #557
- Fix typo: orignal -> original by @pajlero in #737
- Update command for Mac OSX Homebrew install by @jesdavpet in #552
- Update contribution instructions with fontforge --script by @Tehnix in #554
- Link to gohu.eu is dead by @Skeeve in #567
- Brew cask install update by @JakobFerdinand in #611
- Fix ps installer by @fsackur in #570
- Docker:
- Update docker-entrypoint.sh by @diddledani in #654
- Consider .ttc in docker entrypoint by @kraftwerk28 in #664
- Update Dockerfile to use supported version of alpine and Python by @dgswilkins in #626
- Update Dockerfile to use latest alpine and py3-pip by @cmarincia in #684
- Fix Failing Docker Builds by @frankhinek in #882
- Update issue templates by @Finii in #782
- patch-em-all: Purge destination dirs if possible by @Finii in #787
- CI: Add Lilex to release by @Finii in #886
v2.1.0
New Features
- Added new fonts:
- IBM Plex (PR #253 @romen)
- iA Writer (patched as iM Writing) (PR #326 @xasx)
- Agave (PR #327 @xasx)
- DaddyTimeMono (fixes #330)
- Victor Mono (PR #364 @kule)
- Cascadia Code (patched as Caskaydia Cove)
- JetBrains Mono (PR #421 @Knovour, fixes #420, #425)
- Added chocolatey install script (PR #259 @rahuliyer95)
- Added PowerShell installation script for Windows (PR #357 @LZong-tw)
- Added font previews to website (fixes #316)
Updates / Improvements
- Updated most of the glyphs in the 'original-source' (PR #249 @danbee)
- Updated font patcher script via refactor (PR #288 @haasosaurus)
- Updated various fonts:
- Updated Fira Code to version 1.206 (PR #298 @mashehu)
- Updated 'Fura' to 'Fira' (PR #356 @ShalokShalom) (fixes #352)
- Updated Fira Code to version 2.0 (PR #372 @hugo-vrijswijk, fixes #424)
- Updated Iosevka to version 2.1.0 (PR #328 @MindTooth)
- Updated Fantasque Sans Mono to version 1.8.0 (PR #423 @adzenith)
- Updated Inconsolata to version 2.001 (fixes #289)
- Updated Liberation to version 2.00.5 (fixes #344)
- Updated Victor Mono to version 1.3.1 (fixes #388)
- Added Cascadia Code to font sources (PR #374 @AaronFriel)
- Added new language translations:
- Added Polish readme (PR #301 @P1X3L0V4)
- Added Spanish readme (PR #378 @Tamh)
- Added Korean readme (PR #382 @ParkSB)
- Added Ukrainian readme (PR #392 @igavelyuk)
- Added Japanese readme (PR #389 @delphinus)
- Added Italian readme (PR #427 @JGiola)
- Added documentation about ligatures for patched fonts (PR #315 @sideeffffect)
Fixes
- Fixed monospace overlapping (PR #283 @haasosaurus, fixes #270)
- Fixed glyph bears in monospaced variants (PR #394 @Finii)
- Fixed archive artifact script not including all fonts (fixes #418)
- Fixed URLs in font table (PR #260 @raffclar)
- Fixed possible mixed content error on website for Google Fonts (PR #276 @mashehu)
- Fixed UX of font-patcher log to be inside `` block (PR #291 @kevinSuttle)
- Fixed bash scripts execution from non-standard bash (PR #282 @deadloko)
- Fixed missing variations of Meslo (PR #308 @segevfiner fixes #302)
- Fixed typo (PR #331 @mikeshatch)
- Fixed typo in css class and cheatsheet (fixes #285)
- Fixed including uuid files (ignored) (PR #371 @lebel)
- Fixed RFN for Anka Coder (PR #376 @gunman808)
- Fixed BigBlueTerminal font formatting in readme (PR #381 @this-is-you)
- Fixed formatting of Agave readme (PR #379 @Roshanjossey)
- Fixed link to Fish Shell on website (PR #385 @kaykayehnn)
- Fixed showcase images in FiraCode readme (PR #405 @equwal)
- Fixed outdated AUR references (PR #416 @sudoLife)
- Fixed elixir image src in Fira Code readme (PR #419 @kadimisetty)
- Fixed missing Italic variation for SourceCodePro (fixes #271)
- Fixed English text in French translation (PR #322 @leoz2007)
- Fixed exit code in install script (PR #361 @evaryont)
- Fixed link of Caskroom (PR #349 @satoryu)
v2.0.0
New Features
- Added new fonts:
- Noto (all variations) (#213)
- Overpass Mono (fixes #177)
- BigBlue Terminal (fixes #170)
- Dyslexic (fixes #217)
- Iosevka Term variant (no ligatures) (fixes #198)
- FiraCode TTF variant (fixes #244)
- SourceCodePro italics variant (fixes #236)
- Added new glyph sets:
- Added new glyphs to core:
- Elm (fixes #172)
- Elixir (fixes #228)
- Electron (fixes #237)
- Added new translations:
- Added Traditional Chinese of readme (partially fixes #118) (PR #222) (@MindyTai)
- Added French readme (partially fixes #118) (PR #251) (@pgrimaud)
- Added ability to remove ligatures via the
--removeligaturesoption infont-patcher - Added
--configfileoption tofont-patcher
Updates / Improvements
- Updated
Hackfont to latest version (v3.003) (fixes #216) (with help from @chrissimpkins) - Updated
Iosevkato the latest version (v1.14.0) (fixes #229) - Updated
Fantasque Sans Monoto the latest version (v1.7.2) (fixes #240) - Updated
MPlusversion from1.018to1.063 - Updated documentation for urxvt wcwidth implementations (fixes #155)
- Updated logos and Sankey diagram
Breaking Updates / Improvements / Changes
- Updated Font Logos (formerly Font Linux) to latest version (fixes #157)
Fixes
- Fixed incorrect exitcode returned from installer (fixes #218) (PR #230 @Phuurl)
- Fixed 3270 font not being valid/installable on Windows (fixes #12, #196)
- Fixed weather variables script typo (PR #242 @snown)
- Fixed Monospaced fonts having ligatures by default (fixed Meslo Mono having ligatures) (fixes #186)
- Fixed Hasklig ExtraLight & Light variants (fixes #231)
v1.2.0
New Features
- Added new fonts:
Arimo(fixes #206) (PR #207 @Ksbugbee)Go-Mono(PR #199 @bbrks)Tinos(fixes #200) (PR #201 @jerezereh)InconsolataLGC(PR #205 @iloginow)Cousine(fixes #208) (PR #209 @de-olagundoye)
- Added Contributors section to Website and Repo (fixes #160) (PR #202, PR #204 @lucasreed)
- Added Travis CI and integrated with ShellCheck script (fixes #120) (#212 PR @andrewimeson)
- Added new translations:
- Added Russian translation of readme (partially fixes #118) (PR #203 @magauran)
- Added Mandarin Chinese translation of readme (partially fixes #118) (PR #214 @hiby90hou)
Updates / Improvements
- Updated
Hasklig (Hasklug)font from version1.0to1.1(fixes #188) (PR #215 @fernandomora) - Updated fontconfig with
monospace(PR #211 @Tyilo)
Fixes
- Fixed font-patcher relative path issues with glyph sources (PR #193 @theGivingTree)
- Fixed install script not being callable from other directories (PR #194 @Twanislas)
- Fixed broken links (@reujab)
- Fixed minor misc readme issues
v1.1.0
New Features
- Added shell helper script (and shell variables) for referencing glyphs (PR #147 @powerman)
- Added new fonts:
InconsoltaGo(PR #130 @sodiumjoe)Ubuntu(non mono) (fixes #134)
- Added release script (fixes #137)
- Added better terminal and font test scripts
- Added CSS file for using Nerd Fonts on websites
- Added script to build CSS file with classes to use Nerd Font glyphs
- Added
--adjust-line-heightoption tofont-patcher
Updates / Improvements
- Updated 'Features' section counts (fixes #117) (PR #122 @OmarB97)
- Updated location of readme images (PR #149 @agriffis)
- Updated
DejaVuversion from2.33to2.37(and removes theDejaVu for Powerline) (PR #151 @agriffis) - Updated Reserved Font Name (RFN) details and provides clarification (fixes #136)
- Updated
Ubuntu Monoversion from0.80to0.83and adds missing Bold and Italic variants (fixes #134) - Updated
FiraCodeversion from1.102to1.204(fixes #180) (PR #181 @aidanharris) - Updated install and Quick Links info in readme
- Updated Homebrew font install in readme
- Updated readme with AUR package links
- Updated readme with links to NerdFonts.com's Cheat Sheet
- Updated readme with 'TL;DR' section and re-ordering of font install options (fixes #124)
- Updated readme with more details on font install options
- Updated various readme sections
- Updated contributing markdown with better information
- Updated explanations of
--monooption and monospace in general (fixes #165) - Updated
font-patcherprogress bars styling - Updated
installh.shscript to support installing to global system paths via-U(default) or-Sflags (PR #187 @brennanfee)
Fixes
- Fixed Powerline glyphs sizes, alignment and offsets (fixes #26)
- Fixed FAQ links in
.github/(PR #132 @polyzen) - Fixed Homebrew command instructions in readme (PR #133 @teddy-error)
- Fixed markdown rendering issues in readme (PR #148 @aloisdg)
- Fixed glyph offsets (especially Powerline) (fixes #142)
- Fixed incorrect typeface names on some fonts (fixes #126)
- Fixed
Font Linuxscreenshot with correct code points (fixes #138) (PR #149 @agriffis) - Fixed trailing spaces in readme (clean-up) (PR #167 @thyrlian)
- Fixed wiki link in issue template (fixes #174) (PR #179 @kballard)
- Fixed misc typos and link references in readme and
font-patcher(PR #184 @reujab) - Fixed font family name conflicts by adding
Monoto single-width fonts (fixes #176) (PR #178 @kballard) - Fixed
font-patcherprogress bar rounding output (PR #183 @reujab) - Fixed executing scripts from other directories (PR #185 @reujab)
- Fixed missing glyph
e0ca(ice waveform mirrored) (fixes #182) - Fixed
Hasklig(Hasklug) SIL OFL compliance issue - Fixed missing or out of date patched font readmes
- Fixed
font-patcherglyph set count not ignoring empty codepoints - Fixed
font-patcherprogress bars stopping at incorrect percentage
v1.0.0
New Features
- Added 6 new fonts:
- Code New Roman (enhancement #85)
- Gohu (enhancement #90)
- Hasklig (enhancement PR #103) (@jrolfs)
- Mononoki (enhancement #89)
- Share Tech Mono (enhancement #105)
- Space Mono (enhancement #93)
- Added new Glyph Sets:
- Font Awesome Extension (Over 170 glyphs) (enhancement #96)
- IEC Power Symbols (enhancement #94)
- Added additional methods to download the fonts:
- Support for Home Brew fonts (enhancement #72)
- Archive downloads via releases with scripts to generate archive downloads for patched fonts (enhancement #32)
- Added single Nerd Fonts glyphs only fonts for Fontconfig aliasing (enhancement #84)
- Added TTF version of Terminess (Terminus) font (fixes #23)
- Added support for custom symbol fonts (with
--customflag) (PR #107 @sharkusk) - Added progress bars options:
--progressbars&--no-progressbarsto patcher script - Added
--postprocessflag to allow additional scripts to run after patching (related to #70)
Updates / Improvements
- Improved repository size greatly (partially fixes #73)
- Provides only
completeversion of patched fonts by default (others are still possible via patcher script)
- Provides only
- Removed
minimalversion of patched fonts (not particularly useful) - Removed
variationversions of patched fonts and instead provides generated list of commands for each combination - Updated Font Awesome to the latest version v4.7.0:
- Updated Octicons font from v3.2.0 to v4.4.0
- Last version with font support
- Adds glyphs:
verified,smiley,unverified,ellipses,file,grabber,plus-small,reply - Various glyph modifications and fixes
- Updated DejaVu Sans Mono from version 2.33 to 2.37
- Updated readme with information on shallow cloning (enhancement #102)
- Updated readme with better readability, prose, and removes some passive voice issues
- Updated sankey diagram in readme with a more visual representation of the glyphs combined
- Updated readability and format of changelog (even past versions)
- Removed redundant flag
--limit-font-name-length
Fixes
- Added missing glyphs in range
2630through2637(trigrams) to DejaVu Sans Mono (fixes #100) - Fixed various missing glyphs such as
heart,zap,desktop(fixes #87) - Fixed several long standing issues (fix & enhancement PR #107) (@sharkusk)
- glyphs (scaling and positioning) (fixes #74, #37)
- Monospaced font issues
- Windows and macOS issues (fixes #111)
- Fixed font name for glyph font 'PowerlineExtraSymbols.otf' (fixes #109)
- Fixed and tweaked various powerline gaps (PR #107 @sharkusk)
- Fixed Hack hints being removed in patched versions (Knack) (fixes #70, with help from @chrissimpkins)
- Fixed various issues with '--careful' flag (PR #107 @sharkusk)
- Fixed missing codepoint conflict information for Octicons & Font Awesome (fixes #116) (image from @kaymmm)
- Fixed and refactored various code logic and style
- Fixed missing Powerline glyphs in
MPlusfont (fixes #40)
v0.8.0
- Added 2 new fonts:
- Fantasque Sans Mono (enhancement #80)
- Iosevka (enhancement #81)
- Added new Glyph set: Font Linux (enhancement #75)
- Updated font install script to limit to a single font family (more typical use case) (enhancement PR #82) (@rawkode)
- Updated readme: Misc readability tweaks and clean-up
- Fixed Powerline Symbols not correctly rendering (if font already has the symbols) (fixes #78)
- Fixed AttributeError with Python 3 version of font patcher script (fixes #79)
- Fixed certain Hack/Knack font style sets by updating version of Hack to v2.020 (fixes #63)
v0.7.0
- Added 3 new fonts:
- Monoid (enhancement #54)
- Roboto Mono (enhancement #55)
- Fira Code (enhancement PR #62, fixes #59) (@jrolfs)
- Added 1 new font variant:
- Proggy Clean (Slashed Zero) (fixes #69)
- Added contributing and issue PR templates (enhancement #66)
- Added Python 3 version of the font-patcher script (fixes #49)
- Improved explanation of font choices (complete vs alternative vs minimal choices) with bash script to maintain (fixes #52)
- Updated Hack to v2.019 (fixes #53)
- Updated Font Awesome to the latest version v4.5.0 (20 new icons) (fixes #48):
- Fixed fonts showing as duplicates in OS X Font Book (fixes #56, enhancement PR #61) (@jrolfs)
- Fixed Powerline Symbols not being applied correctly to patched fonts since v0.5.0 (fixes #68, fix PR #71) (@F1LT3R)
v0.6.1
- Added 'font installation' section from vim-devicons with changes (enhancement PR #47) (@her)
- Improved various readme updates and fixes: Improved section headers, gitter badge, misc
- Fixed possible error with '--careful' flag (fixes #45)
- Fixed default font directory on linux install script to
~/.local/share/fontsas the previous was deprecated (fix PR #51) (@shaief) - Fixed broken curl download example (fixes #50)
- v0.6.0
- Updated Font naming conventions and directory paths that are more manageable (partially fixes #32, #42)
- Updated Font variations to use same Font Family (partially fixes #25, #42)
- Updated Hack/Knack font to v2.018 (enhancement #39)
- Updated Source Code Pro (Sauce Code Pro) font to v2.010/v1.030 (enhancement #33)
- Updated Octicons font to v3.2.0 plus latest master commits
- Updated readme with alternate OSX install and execution options (enhancement #38)
- Improved performance of 'Multiple Fonts Patcher (Gotta Patch 'em All Font Patcher!) by using parallelization (background processes) (enhancement #44)
- Added new flag/option to font patcher (--outputdir) to allow specifying where to save patched font instead of current directory (enhancement #44)
- Added 'Powerline Extra' symbols (enhancement #30, #35)
- Added more Glyphs from Vim-devicons glyph set (various folders, Go, Windows logo, Vim logo, etc)
- Fixed patched fonts not retaining glyph names (fixes #41)
- Fixed Ligatures being lost/overwritten when patching (fixes #43)
- Regenerated all patched fonts
v0.5.1
- Added Gitter chat badge
- Updated readme with badges
v0.5.0
- Added Hack font (as 'Knack' for now) (enhancement PR #28) (@cheba)
- Updated and improved all fonts patcher script (enhancement PR #27) (@cheba)
- Updated Font Awesome to the latest version v4.4.0
- for more details see https://github.com/FortAwesome/Font-Awesome/releases/tag/v4.4.0
- Updated readme with Reserved Font Name info, Hack font, and various version updates
- Updated the directory structures to make it easier to find font styles
- Updated all patch fonts to use latest changes and fixes
- Fixed unicode codepoints for Font Awesome glyphs (fixes #31)
- Fixed potential SIL Open Font License (OFL) issue with 'Fira Mono' (patched as 'Fura')
v0.4.1
- Fixed wrong em sizes on some glyphs (particularly Font Awesome) (fixes #24)
- Regenerated all patched fonts
- Added version, comment and fontlog (with changelog notes) to fonts
- Added image: non text version of patcher logo
- Removed misc unnecessary code (clean-up)
- Updated changelog: added missing release details and updated other releases
v0.4.0
- Added support for 'octicons', 'font-awesome' font glyphs
- Added missing font combinations
- Added Hermit (as 'Hurmit' to comply with SIL Open Font License (OFL)) font
- Added more sample fonts (Hermit and SourceCodePro variants)
- Added logos
- Added 'Code of Conduct'
- Added missing Pomicons.otf source file and update .gitignore (fixes #19)
- Added 'all fonts patcher script' pattern parameter support (fuzzy matching)
- Updated readme: python-fontforge minimum version & link to FontForge install docs (enhancement PR #18) (@blueyed)
- Updated readme: various misc improvements and fixes
- Fixed font-patcher to only load Pomicons.otf with '--pomicons' flag (enhancement PR #20) (fixes #19) (@blueyed)
- Fixed other misc issues
- Added font files versioning
v0.3.1
- Updated readme
- Fixed font patcher output name for Mono fonts
- Fixed patcher overwriting fonts with 'Mono' versions preventing all combinations from being generated (only 220 instead of 352)
- Fixed more possible license issues by completely removed 'Input Mono' font related files
- Fixed all patched fonts: Re-patched all the fonts due to issue with font patcher and all fonts
v0.3.0
- Added new fonts, set up unpatched sources, and set up patched version folders (enhancement #10)
- Fonts: 3270, Aurulent Sans Mono, Bitstream Vera Sans Mono, Heavy Data, Lekton, MPlus (M+), ProFont
- Added script to re-patch all of the fonts (work in progress) for enhancement (enhancement #11)
- Added pomicon glyphs (enhancement #14)
- Updated devicons font source to latest version 1.8.0 release
- Updated the range to include new glyphs from latest devicons 1.8.0 (work toward but NOT does not fix #12)
- Updated scripts and files: various clean-up and refactoring tasks
- Updated readme
v0.2.1
- Added fonts install script for Linux and Mac OS (enhancement PR #5) (@srijanshetty)
- Added detection and warnings when using unsupported (old) fontforge versions (fixes #6)
- Added missing patched fonts
- Fixed Licensing compliance issues (#7)
- includes removing PragmataPro (@abl)
- Updated readme: misc updates and tweaks
v0.2.0
- True mono support
- Script can now build single and double width glyphs!
- Added details of cli parameters and updated fonts list with the true mono spaced fonts (#4)
- Added/fixed mono fonts single width glyphs support
- Updated readme
v0.1.2
- Updated readme with better description and explanation of the options available
- Added new unpatched font PragmataPro for Powerline
- Added new patched font PragmataPro for Powerline Plus Nerd File Types
v0.1.1
- Fixes scaling issues in first set of glyphs in certain fonts (fixes issue #1)
v0.1.0
- Release
- Inital port from 'features/1-script-patch-fonts' branch on vim-webdevicons repo
File: code_of_conduct.md
Contributor Covenant Code of Conduct
Our Pledge
In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, gender identity and expression, level of experience,
nationality, personal appearance, race, religion, or sexual identity and
orientation.
Our Standards
Examples of behavior that contributes to creating a positive environment
include:
- Using welcoming and inclusive language
- Being respectful of differing viewpoints and experiences
- Gracefully accepting constructive criticism
- Focusing on what is best for the community
- Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
- The use of sexualized language or imagery and unwelcome sexual attention or
advances - Trolling, insulting/derogatory comments, and personal or political attacks
- Public or private harassment
- Publishing others' private information, such as a physical or electronic
address, without explicit permission - Other conduct which could reasonably be considered inappropriate in a
professional setting
Our Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.
Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct, or to ban temporarily or
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.
Scope
This Code of Conduct applies both within project spaces and in public spaces
when an individual is representing the project or its community. Examples of
representing a project or community include using an official project e-mail
address, posting via an official social media account, or acting as an appointed
representative at an online or offline event. Representation of a project may be
further defined and clarified by project maintainers.
Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team on
Nerd Icons Gitter Chat
or contacting @ryanoasis. All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.
Further details of specific enforcement policies may be posted separately.
Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project's leadership.
Attribution
This Code of Conduct is adapted from the Contributor Covenant, version 1.4,
available at http://contributor-covenant.org/version/1/4/
File: contributing.md
Contributing Guide
Working on your first Pull Request? You can learn how from this free series How to Contribute to an Open Source Project on GitHub
How to contribute summary
Often it can be helpful to discuss a PR first in an Issue to avoid later problems or re-design when it is in review.
- Fork the project and submit a Pull Request (PR)
- Use the pull request template and answer the questions
- Explain what the PR fixes or improves
- Screenshots for bonus points
- Use sensible commit messages
- Short descriptive title in the first line, one empty line, and then multiple lines with an explanation (why and how).
- If your PR fixes a separate issue number, include it in the commit message like
Fixes: #123(on a separate line).
- Use a sensible number of commit messages as well
- e.g. Your PR should not have 100s of commits
- If you fix a previous commit of the PR it might be worth considering to squash them
How to add yourself to the contributors (give yourself attribution)
Don't forget to give yourself credit! Make sure you add yourself to the contributors list that will eventually propagate to NerdFonts.com
Usually the person pulling your PR will make sure you did not forget this step.
Either:
- Invoke the @all-contributors bot by commenting on your Pull Request or Issue.
- (not advised) Shallow clone repo and execute
all-contributors add <YOUR_GITHUB_HANDLE> <CONTRIBUTION_TYPE>
Common types for this project include: code, doc, translation, review. For full list of contribution types see: https://allcontributors.org/en/reference/emoji-key
Steps for updating an existing font
1. Update original (unpatched) version
- Copy and replace the existing unpatched version of the font and any readme and/or license files in the
src/unpatched-fonts/XYZdirectory- e.g. Updating XYZ Font, update files in directory
src/unpatched-fonts/XYZ/{PUT FONT FILES HERE} - Make sure to update the correct subfolders for each font style (e.g.
src/unpatched-fonts/XYZ/Bold/{BOLD FONT FILES HERE}), but only if the subfolder structure is already existing - Update version information in the
readme.mdfile(s) andbin/scripts/lib/fonts.json - Add all the modifications into a git commit
- e.g. Updating XYZ Font, update files in directory
2. Execute basic testing
- Do a basic test with the new font to ensure it patches correctly and generates a new font file, e.g.
fontforge --script ./font-patcher src/unpatched-fonts/XYZ/XYZ.ttf --complete --debug 2- Make sure to then delete this new font file if it is in the repository
3. Run build scripts
This is not needed and you should never commit any patched files directly to the repo. The Github workflow will do that at appropriate times.
- When fairly satisfied the font patches correctly, run the following:
- Patch all of the variations/options, e.g.
./gotta-patch-em-all-font-patcher\!.sh /XYZ
- Patch all of the variations/options, e.g.
Steps for adding a new font or removing an existing font
1. Verify license
- Check the license even allows the font to be modified and shared
2. Add original (unpatched) version
- Add the unpatched version of the font and any license files to the
src/unpatched-fonts/directory inside a new directory- e.g. Adding XYZ Font, create directory
src/unpatched-fonts/XYZ/{PUT FONT FILES HERE} - Do not make subfolders for each font style
- Add a
README.mdfile tosrc/unpatched-fonts/XYZthat follows the style of the existing fonts - If the font has only Oblique instead of Italic, set that (and other specials) in the
config.cfgfile - Update information in the
/readme.mdfile(s) - Insert font into
bin/scripts/lib/fonts.json; userepoRelease=false - Add all the modifications into a git commit
- e.g. Adding XYZ Font, create directory
3. Execute basic testing
- Do a basic test with the new font to ensure it patches correctly and generates a new font file, e.g.
fontforge --script ./font-patcher src/unpatched-fonts/XYZ/XYZ.ttf --complete --debug 2- Make sure to then delete this new font file if it is in the repository (all patched fonts should be generated in the
patched-fontsdirectory)
4. Run build scripts
You should never commit any patched files directly to the repo. The Github workflow will do that at appropriate times.
- When fairly satisfied the font patches correctly, run the following:
- Patch all of the variations/options, e.g.
NERDFONTS='--debug 2 --makegroups 1' ./gotta-patch-em-all-font-patcher\!.sh /XYZ
- If there are name length problems you might want to use
--makegroups 2or increasing (3, 4, ...), until all fonts of the set come out without error. - To increase testing speed add
--dryto theNERDFONTSvariable above. - Add the needed
makegroupslevel (if it is not 1) to theconfig.cfgfile and amend your commit.
- Patch all of the variations/options, e.g.
5. Release
- As we do not release directly to the repository anymore the new font will only be seen on a real release.
- For that the font image preview will also be needed (
generate-font-image-previews.sh). - What is automated via Github workflows and what not might change over time, so nothing is specified here.
Steps to add a new icon to the core set
Codepoints in the code set are a scarce resource, so in general it is unlikely that an icon will be added.
- To add a icon one just needs to throw the svg into the correct directory and add a line to
icons.tsv. - The workflow than automagically updates the
i_seti.shand theoriginal-source.otf(workflowPackSVGs).
Things to keep in mind
- Smaller Pull Requests are likely to be merged more quickly than bigger changes
- This project is using a KISS Workflow
- Pull Requests and bugfixes are directly merged into the default branch after sanity testing
- The default branch is basically consider the main developer branch
- We no longer wait to get changes into the default branch when there is a release/milestone/version!
- The release branches and version tags are considered stable and frozen
- This project is using Semantic Versioning 2.0.0
- If a bugfix or PR is not trivial it will likely end up in the next MINOR version
- If a bugfix or PR is trivial or critical it will likely end up in the next PATCH version
- Useful Pull Requests will get merged in eventually
Commit messages
- Squashing to 1 commit is not required at this time
- Use sensible commit messages (when in doubt:
git log) - Short descriptive title in the first line, one empty line, and then multiple lines with an explanation (e.g. why and how).
- Use a sensible number of commits
- If your PR fixes a specific issue number, include it in the commit message:
Fixes: #123as this activates the autolink and autoclose mechanism.
Code standards
Shell Scripts
- Follow ShellCheck - A shell script static analysis tool
- Try to follow Google's Shell Style Guide
Python
- Use 4 spaces for indentation
- Consider PEP8 and other (@todo)
AI/LLM usage
- The use of AI/LLM (especially for code parts of a PR) need to be flagged in the pull request description.
- Commits containing AI/LLM generated code needs to disclose it in the commit message.
- This helps us in the review process.
File: CONTRIBUTORS.md
Contributors
Thanks goes to these wonderful people (emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!