nerd-fonts Documentation

Iconic font aggregator, collection, & patcher. 3,600+ icons, 50+ patched fonts: Hack, Source Code Pro, more. Glyph collections: Font Awesome, Material...

RAW Doc

Docker & Self-Hosted Deployment Verified OCI

Deploy nerd-fonts on any server, homelab, or cloud container platform.

1-Click Terminal Command
bash (docker run)
docker run -d --name nerd-fonts --restart always ryanoasis/nerd-fonts:latest

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

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

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

See Wiki: Icon names in shell

Patched Fonts

A preview of all fonts can be found here.

Font Name Original Font Name and Repository ver *RFN
0xProto Nerd Font 0xProto 2.502 NO
3270 Nerd Font 3270 3.0.1 NO
AdwaitaMono Nerd Font Adwaita Mono 34.1 NO
Agave Nerd Font Agave 38 NO
AnnotationMono Nerd Font Annotation Mono 0.4 NO
AnonymicePro Nerd Font Anonymous Pro 1.002 YES
Arimo Nerd Font Arimo 1.33 NO
AtkynsonMono Nerd Font Atkinson Hyperlegible Mono 2.001 YES
AurulentSansMono Nerd Font Aurulent Sans Mono (Stephen G. Hartke) NO
BigBlueTerminal Nerd Font BigBlueTerminal (VileR) NO
BitstromWera Nerd Font Vera Sans Mono (Bitstream Inc) 1.1 YES
BlexMono Nerd Font IBM Plex Mono 2.004 YES
CaskaydiaCove Nerd Font Cascadia Code 2407.24 YES
CaskaydiaMono Nerd Font Cascadia Mono 2407.24 YES
CodeNewRoman Nerd Font Code New Roman (Sam Radian) 2.0 NO
ComicShannsMono Nerd Font Comic Shanns Mono 1.3.2 NO
CommitMono Nerd Font Commit Mono 1.143 NO
Cousine Nerd Font Cousine 1.241 NO
D2Koding Nerd Font D2Coding 1.3.2 YES
DaddyTimeMono Nerd Font DaddyTimeMono 1.2.3 NO
DepartureMono Nerd Font Departure Mono 1.500 NO
DejaVuSansMono Nerd Font DejaVu 2.37 NO
DroidSansMono Nerd Font Droid Sans Mono (Ascender Corp) 1.00-113 NO
EnvyCodeR Nerd Font Envy Code R 0.79 YES
FantasqueSansMono Nerd Font Fantasque Sans Mono 1.8.0 NO
FiraCode Nerd Font Fira Code 6.2 NO
FiraMono Nerd Font Fira Mono 3.206 NO
GeistMono Nerd Font Geist Mono 1.702 NO
GoMono Nerd Font Go-Mono 2.010 NO
Gohu Nerd Font Gohu TTF, Gohu 2.0 NO
GoogleSansCode Nerd Font Google Sans Code 7.001 NO
Hack Nerd Font Hack 3.003 NO
Hasklug Nerd Font Hasklig 1.2 YES
HeavyDataMono Nerd Font HeavyData (Vic Fieger) 1 NO
Hurmit Nerd Font Hermit 2.0 YES
iM-Writing Nerd Font iA-Writer Dec 2018 YES
Inconsolata Nerd Font Inconsolata 3.000 NO
InconsolataGo Nerd Font InconsolataGo 1.013 NO
Inconsolata LGC Nerd Font Inconsolata LGC 3.201 NO
IntoneMono Nerd Font Intel One Mono 1.4.0 YES
Iosevka Nerd Font Iosevka 34.8.0 NO
IosevkaTerm Nerd Font Iosevka Term 34.8.0 NO
IosevkaTermSlab Nerd Font Iosevka Term Slab 34.8.0 NO
JetBrainsMono Nerd Font JetBrains Mono 2.304 NO
Lekton Nerd Font Lekton 34 NO
Literation Nerd Font Liberation 2.1.5 YES
Lilex Nerd Font Lilex 2.700 NO
MartianMono Nerd Font MartianMono 1.1.0 NO
Meslo Nerd Font Meslo 1.21 NO
Monaspice Nerd Font Monaspace 1.400 YES
Monofur Nerd Font Monofur (Tobias B Koehler) 1.0 NO
Monoid Nerd Font Monoid 0.61 NO
Mononoki Nerd Font Mononoki 1.6 YES
M+ Nerd Font MPlus Fonts 1.100 NO
Noto Nerd Font Noto div NO
OpenDyslexic Nerd Font OpenDyslexic 2.001 NO
Overpass Nerd Font Overpass 3.0.5 NO
ProFont Nerd Font ProFont 2.3, 2.2 NO
ProggyClean Nerd Font ProggyClean (Tristan Grimmer) 2004/04/15 NO
RecMono Nerd Font Recursive Mono 1.085 NO
RobotoMono Nerd Font Roboto Mono 3.0 NO
SauceCodePro Nerd Font Source Code Pro 2.042 YES
ShureTechMono Nerd Font Share Tech Mono 1.003 YES
SpaceMono Nerd Font Space Mono 1.003 NO
Terminess Nerd Font Terminus TTF 4.49.3 YES
Tinos Nerd Font Tinos 1.23 NO
Ubuntu Nerd Font Ubuntu Font 0.83 NO
UbuntuMono Nerd Font Ubuntu Font 0.80 NO
UbuntuSans Nerd Font Ubuntu Sans 1.006 NO
UbuntuSansM Nerd Font Ubuntu Sans Mono 1.100 NO
VictorMono Nerd Font Victor Mono 1.5.6 NO
ZedMono Nerd Font Zed Mono 1.2.0 NO

*RFN = Reserved Font Name

Variations

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

sh
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

sh
brew install font-hack-nerd-font

On 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).

sh
curl -s https://raw.githubusercontent.com/ryanoasis/nerd-fonts/master/install.sh -o install.sh
chmod u+x install.sh
./install.sh help

Examples:

sh
./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):

powershell
choco install nerd-fonts-hack

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

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

powershell
Install-PSResource -Name NerdFonts
Import-Module -Name NerdFonts

To install one font:

powershell
Install-NerdFont -Name 'FiraCode' # Tab completion works on name

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

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

To install specific fonts directly, use the following command:

powershell
& ([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 the
10-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:

sh
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):

sh
git clone --filter=blob:none [email protected]:ryanoasis/nerd-fonts

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

sh
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-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:
    text
    fontforge -script font-patcher PATH_TO_FONT
    • Usage, direct (more convenient call, if it works for you):
    text
    ./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.

    text
    ./FontForge.AppImage -script $PWD/font-patcher $PWD/BaseFont.ttf -out /tmp
  • Use docker

    • Default parallel tasks
    text
    docker run --rm -v /path/to/fonts:/in:Z -v /path/for/output:/out:Z nerdfonts/patcher [OPTIONS]
    • Single process (slow)
    text
    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
    text
    docker run --rm -v /path/to/fonts:/in:Z -v /path/for/output:/out:Z -e "PN=10" nerdfonts/patcher [OPTIONS]
    • Update docker image
    text
    docker pull nerdfonts/patcher
    • Run interatively to get full control of font-patcher invocation and all debug output and error messages:
    text
    docker run -it -v /path/to/fonts:/in:Z --entrypoint=/bin/sh nerdfonts/patcher

    And 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 appending Nerd Font. For example, iosevka term would become IosevkaTerm Nerd Font.

Full options follow, see also page explaining all options:

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

Examples

text
./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 --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:

    text
    ./gotta-patch-em-all-font-patcher\!.sh
  • can optionally limit to specific font name pattern:

    text
    ./gotta-patch-em-all-font-patcher\!.sh Hermit
  • or to specific directory name start:

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

Full options:

text
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!.sh

Contributing

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:

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

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


File: backers.md

Backers

Special thanks to these backers for their support:

Deven Phillips

Alex


Quentin Lamamy


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-italic to 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.xz archives #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 -s or --mono instead)

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 otf format are now much smaller (comparable to ttf) #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 Propo and SymbolsOnly #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.json for 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 Codicon Circles #1261
  • Fix DaddyTimeMono NFM #1244
  • Fix fsSelection for --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 Code self-patcher (#1242)
  • Create tar.xz packs 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-directory in custom-
  • Fix wrong fsSelection bit
  • Fix fi ligature 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 Font in the name while other have it abbreviated as NF. This is needed because some names just were too long. (Same for Nerd Font Mono and NFM.)
  • There are no Windows Compatible fonts anymore. All fonts work on all platforms.
  • The Complete from 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.

Otherwise this is a 'Update release', so now the good stuff:

Updates

  • Update Agave to v37
  • Update Arimo to 1.33
  • Update DaddyTimeMono to 1.2.3
  • Update Fira Mono to 3.206
  • Update Go Mono to 2.010
  • Update Hermit to 2.0
  • Update IBM Plex to 2.3
  • Update Iosevka to 22.1.0
  • Update Literation to 2.1.5
  • Update Lilex to 2.000
  • Update mononoki to 1.6
  • Update MPlus to ... current
  • Update Overpass to 3.0.5
  • Update Roboto Mono to 3.0
  • Update Source Code Pro to 2.038
  • Update Terminus to 4.49.2
  • Update Victor Mono to 1.5.4
  • Update the Octicons set to 18.3.0

Features

  • New font ComicShannsMono
  • New variant in release Nerd Font Propo for 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.zip from HEAD
  • Create a json database with css names
  • Disentangle Iosevka into two packets (one for Iosevka Term)
  • Add option to manipulate xAvgCharWidth (needed rarely by self-patchers)
  • Add option to allow italic-less fonts with oblique
  • Add --debug and --dry to font-patcher
  • Add logging into file to font-patcher
  • Add NERDFONTS environment variable to transport options through gotta-patch-em

Improvements

  • Fix Caskaydia Code height different to Cascadia Code (hinting problem) (font is now ttf instead of otf!)

Fixes

  • Fix baseline to basline distance (line gap) for some fonts
  • Fix weather icons cloud scaling
  • Fix UniqueID of the fonts
  • Fix Bitstream Vera name: Is now Bitstrom Wera due 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 Mono to 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 TTC files #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 Inconsolata to v3.000 #775
  • Update 3270font to v3.0.1 #948
  • Update Mononoki to 1.5 fec587385
  • Update Seti glyph set #978
  • Update JetBrains Mono by @rluvaton #1053

Improvements

  • install.sh --remove #822
  • Stable codepoints #778
  • Add -WindowsCompatibleOnly on install.ps1 by @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 --removeligatures option in font-patcher
  • Added --configfile option to font-patcher

Updates / Improvements

  • Updated Hack font to latest version (v3.003) (fixes #216) (with help from @chrissimpkins)
  • Updated Iosevka to the latest version (v1.14.0) (fixes #229)
  • Updated Fantasque Sans Mono to the latest version (v1.7.2) (fixes #240)
  • Updated MPlus version from 1.018 to 1.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 version 1.0 to 1.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-height option to font-patcher

Updates / Improvements

  • Updated 'Features' section counts (fixes #117) (PR #122 @OmarB97)
  • Updated location of readme images (PR #149 @agriffis)
  • Updated DejaVu version from 2.33 to 2.37 (and removes the DejaVu for Powerline) (PR #151 @agriffis)
  • Updated Reserved Font Name (RFN) details and provides clarification (fixes #136)
  • Updated Ubuntu Mono version from 0.80 to 0.83 and adds missing Bold and Italic variants (fixes #134)
  • Updated FiraCode version from 1.102 to 1.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 --mono option and monospace in general (fixes #165)
  • Updated font-patcher progress bars styling
  • Updated installh.sh script to support installing to global system paths via -U (default) or -S flags (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 Linux screenshot 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 Mono to single-width fonts (fixes #176) (PR #178 @kballard)
  • Fixed font-patcher progress 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-patcher glyph set count not ignoring empty codepoints
  • Fixed font-patcher progress 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:
  • 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 --custom flag) (PR #107 @sharkusk)
  • Added progress bars options: --progressbars & --no-progressbars to patcher script
  • Added --postprocess flag to allow additional scripts to run after patching (related to #70)

Updates / Improvements

  • Improved repository size greatly (partially fixes #73)
    • Provides only complete version of patched fonts by default (others are still possible via patcher script)
  • Removed minimal version of patched fonts (not particularly useful)
  • Removed variation versions 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 2630 through 2637 (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 MPlus font (fixes #40)

v0.8.0

  • Added 2 new fonts:
  • 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/fonts as 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
  • 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/XYZ directory
    • 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.md file(s) and bin/scripts/lib/fonts.json
    • Add all the modifications into a git commit

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

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.md file to src/unpatched-fonts/XYZ that follows the style of the existing fonts
    • If the font has only Oblique instead of Italic, set that (and other specials) in the config.cfg file
    • Update information in the /readme.md file(s)
    • Insert font into bin/scripts/lib/fonts.json; use repoRelease=false
    • Add all the modifications into a git commit

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-fonts directory)

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 2 or increasing (3, 4, ...), until all fonts of the set come out without error.
    • To increase testing speed add --dry to the NERDFONTS variable above.
    • Add the needed makegroups level (if it is not 1) to the config.cfg file and amend your commit.

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.sh and the original-source.otf (workflow PackSVGs).

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: #123 as this activates the autolink and autoclose mechanism.

Code standards

Shell Scripts

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

Ryan L McIntyre๐Ÿ’ป ๐Ÿ“– ๐ŸŽจ ๐Ÿ‘€ Marcus Kellerman๐Ÿ’ป ๐Ÿ‘€ reujab๐Ÿ’ป ๐Ÿ“– Jamie Rolfs๐Ÿ’ป Aron Griffis๐Ÿ’ป ๐Ÿ“– morrme๐Ÿ’ป Daniel Hahler๐Ÿ’ป ๐Ÿ“–
Alex Efros๐Ÿ’ป ๐Ÿ“– ๐Ÿค” Joe Moon๐Ÿ’ป Brennan Fee๐Ÿ’ป Alexander Mankuta๐Ÿ’ป Melanie๐Ÿ‘€ ๐Ÿ“– David McKay๐Ÿ’ป ๐Ÿ“– Kevin Ballard๐Ÿ’ป ๐Ÿ“–
Alistair MacDonald๐Ÿ’ป Shai Efrati๐Ÿ’ป Jinwook Jeong๐Ÿ’ป Srijan R Shetty๐Ÿ’ป Antoine Rahier๐Ÿ’ป Andy Bearman๐Ÿ“– Aidan Harris๐Ÿ’ป
Tim Bellefleur๐Ÿ’ป Jing Li๐Ÿ“– Alois๐Ÿ“– Daniel M. Capella๐Ÿ“– Bin Ury๐Ÿ“– Omar Baradei๐Ÿ“– Ricardo Bรกnffy๐Ÿ“–
Leonardo Santagada๐Ÿ“– Xandor Schiefer๐Ÿ’ป iladin๐Ÿ“– Luke Reed๐Ÿ“– Andrew Imeson๐Ÿ’ป Alexey Salangin๐ŸŒ Ben Brooks๐Ÿ’ป
De Olagundoye๐Ÿ’ป CHANG LIU๐ŸŒ Asger Hautop Drewsen๐Ÿ’ป Fernando Mora๐Ÿ’ป Ilia Loginov๐Ÿ’ป MindyTai๐ŸŒ Phuurl๐Ÿ’ป
Samuel Ramos๐Ÿ“– Logan Holmes๐Ÿ’ป Pierre Grimaud๐ŸŒ jerezereh๐Ÿ’ป Chris Simpkins๐Ÿ’ป ๐Ÿ› ๐Ÿค” ๐Ÿ‘€ Daniel Barber๐Ÿ’ป Nicola Tuveri๐Ÿ’ป
Segev Finer๐Ÿ’ป Igor Gavelyuk๐ŸŒ Birger J. Nordรธlum๐Ÿ’ป Fini๐Ÿ’ป Juan Garcia๐ŸŒ Andrew Newman๐Ÿ’ป Anna Karpiล„ska๐ŸŒ
David Lebel๐Ÿ’ป Frรฉdรฉric Simons๐ŸŒ Hugo van Rijswijk๐Ÿ’ป Jacopo Andrea Giola๐ŸŒ Kevin Suttle๐Ÿ’ป Knovour๐Ÿ’ป LZong๐Ÿ’ป
Luke Pearce๐Ÿ’ป Mike Hatch๐Ÿ’ป Nikolaus Wittenstein๐Ÿ’ป No GUI๐Ÿ’ป Ondra Pelech๐Ÿ“– Park Seong-beom๐ŸŒ Roshan Jossy๐Ÿ’ป
ShalokShalom๐Ÿ’ป Spenser Truex๐Ÿ’ป Sri Kadimisetty๐Ÿ’ป Tatsuya Sato๐Ÿ’ป JINNOUCHI Yasushi๐Ÿ’ป ๐Ÿค” ๐ŸŒ raffclar๐Ÿ’ป mashehu๐Ÿ’ป
Rahul Iyer๐Ÿ’ป sudoLife๐Ÿ’ป this_is_you๐Ÿ’ป Moritz Dietz๐Ÿ’ป Luan Vitor Simiรฃo Oliveira๐Ÿ’ป Andrรฉ David๐Ÿ’ป Freddie Sackur๐Ÿ’ป
Gustavo Reis๐ŸŒ FollieHiyuki๐Ÿ’ป Andy Lindeman๐Ÿ’ป Sean Fausett๐Ÿ’ป Andy๐Ÿ’ป Christian Kjรฆr๐Ÿ’ป Alexis Lefebvre๐Ÿ“–
Joseph Quinn๐Ÿ“– Oliver Hoffmann๐Ÿ’ป adrian5๐Ÿ“– Douglas Wilkins๐Ÿ’ป duganchen๐Ÿ’ป A. Tammy๐Ÿ’ป Anton Maminov๐Ÿ’ป
Catalin Marincia๐Ÿ’ป Dani Llewellyn๐Ÿ’ป DัA๐Ÿ’ป David Hollinger III๐Ÿ’ป Enrique Garcรญa Galรกn๐Ÿ’ป GiorgosXou๐Ÿ“– Harwood๐Ÿ“–
Hugo Osvaldo Barrera๐Ÿ’ป Jakob Ferdinand Wegenschimmel๐Ÿ’ป Jesse David Peterson๐Ÿ“– Luรญs Pinto๐ŸŒ โ–‘โ–‘โ–‘โ–‘ โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘๐Ÿ“– Stephan Hradek๐Ÿ“– Victor Nystad๐Ÿ“–
Vsevolod๐Ÿ’ป Shinho Ahn๐Ÿ’ป IK๐Ÿ’ป Nate Bhurinat Wangsutthitham๐Ÿ’ป onokatio๐Ÿ’ป petec๐Ÿ“– HarshalRathore๐ŸŒ
Charles Strahan๐Ÿ’ป Jason Chen๐Ÿ“– Kurt๐Ÿ“– ๐ŸŒ Michael Rienstra๐Ÿ“– Chris Long๐Ÿ“– ะ•ะณะพั€ ะœะฐั€ั‚ั‹ะฝะพะฒ๐Ÿ“– Nathaniel Evan๐Ÿ’ป ๐Ÿ›
Goooler๐Ÿ“– Micael Jarniac๐Ÿ“– teatimeguest๐Ÿ’ป bri๐Ÿš‡ Calcifer๐Ÿ“– Weltolk๐Ÿ“– Matthew Toohey๐Ÿ’ป
Fazzi๐Ÿ› Jim Myhrberg๐Ÿ› Maaz๐Ÿ“– negset๐Ÿ’ป airt๐Ÿ“– Lauren Yim๐Ÿ› ๐Ÿ“– SilverMira๐Ÿ›
rszyma๐Ÿ’ป Ulices๐Ÿ’ป ๐ŸŒ _kmz๐Ÿค” NRK๐Ÿค” loichyan๐Ÿ”ง senketsu03๐ŸŒ Dennis Praลพรกk๐Ÿ’ป
Nicolas Epstein๐Ÿ“– LeoniePhiline๐Ÿ› Frantiลกek Hanzlรญk๐Ÿ“– Vitthal Popat Gund๐Ÿ’ป Raul Piraces Alastuey๐Ÿ’ป King Art๐Ÿ“– George Guimarรฃes๐Ÿ’ป
Grazfather๐Ÿ’ป ๐ŸŽจ Tom Lienard๐Ÿ’ป Svyatoslav Kryukov๐Ÿ’ป Blanchon๐Ÿ’ป Felix Yan๐Ÿ“– PinkLea๐Ÿ’ป brett๐Ÿ›
Marcin Rรณลผewski๐Ÿ’ป ๐Ÿšง Shohamza๐Ÿ’ป nobk๐Ÿ’ป Saygo๐Ÿ“– kazerniel๏ธ๏ธ๏ธ๏ธโ™ฟ๏ธ Lucy Phipps๐Ÿ› glow๐Ÿ“–
junoslukan๐Ÿ’ป Rogin Farrer๐Ÿ’ป RKS๐Ÿ’ป ่ŽŠๅŠ ๆ—ญ (Max Chuang)๐Ÿ“– Guillaume BOEHM๐Ÿ’ป Christopher Bellanger๐Ÿ“– luebking๐Ÿ› ๐Ÿ‘€
usr๐Ÿ‘€ ๐Ÿค” trashner๐Ÿ‘€ Dr Yann Golanski๐Ÿ› Wiesล‚aw Herr๐Ÿ’ป Slabity๐Ÿ› Youri Wijnands๐Ÿ’ป Lennier Mulder๐Ÿ“–
Eli Array Minkoff๐Ÿ› TehPers๐Ÿ› Siyuan Chen๐Ÿ“– Francesco Luzzi๐Ÿ› Gibson Fahnestock๐Ÿ› ๐Ÿ’ป Ezekiel Warren๐Ÿ’ป Michael Yang๐Ÿ’ป
ใƒžใƒซใ‚ณใƒ•๐Ÿ› Veritรฉ Mugabo๐Ÿ“– Kristopher James Kent๐Ÿ› Dmitry S๐Ÿ› realguse๐Ÿ“– ๐Ÿ‘€ doongjohn๐Ÿ› Julian Pawlowski๐Ÿ”ง ๐Ÿ“–
Gitoffthelawn๐Ÿ“– Nikunj Mathur๐Ÿ“– Eva๐Ÿ“– Oleg Kostyuk๐Ÿ“– crummyh๐Ÿ“– Sergey Kochetkov๐Ÿ’ป Saumyajyoti Mukherjee๐Ÿ›
Pablo Sanchez๐Ÿ“– Josh Stein๐Ÿ’ป Trung Nguyen๐Ÿ› David Marrero๐Ÿ’ป sliva0๐Ÿ“– Austin Gause๐Ÿ› Nick๐Ÿ›
Song๐Ÿ› an octoling๐Ÿ› Nils๐Ÿ› Justin Su๐Ÿ“– ๐Ÿค” ๐Ÿ’ป ZhiZe-ZG๐Ÿ› x626f๐Ÿ“– Herman Malik๐Ÿ›
Goldpigg๐Ÿ’ป shaun๐Ÿ’ป Pรกdraic Slattery๐Ÿšง Muhammad Naufal Kateni๐Ÿ“– Ning Wang๐Ÿ’ป Joe Riddle๐Ÿ’ป ้’ๆœจ ๆฉ™่Šฑ๐Ÿ’ป
Daniel Wennberg๐Ÿ’ป Roy Ivy III๐Ÿค” barries๐Ÿค” thekingofspain๐Ÿค” Tobias Fried๐Ÿ’ป Dusk๐Ÿ’ป Gerard Balaoro๐Ÿ’ป
kStor2poche๐Ÿ› Krisque๐Ÿ“– Markus Heiser๐Ÿ’ป laur89๐Ÿ› XiayongLee๐Ÿ› ๐Ÿ’ป Dani Bento๐Ÿ’ป Giacomo Guiduzzi๐Ÿ›
Leo Camus๐Ÿ’ป mahdimahdieh๐Ÿ›

This project follows the all-contributors specification. Contributions of any kind welcome!