Code Monkey home page Code Monkey logo

ryanoasis / nerd-fonts Goto Github PK

View Code? Open in Web Editor NEW
51.3K 385.0 3.6K 23.79 GB

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

Home Page: https://NerdFonts.com

License: Other

Python 16.92% Shell 38.30% CSS 44.54% PowerShell 0.17% Dockerfile 0.07%
fonts patched-fonts powerline shell statusline python iconic-fonts patcher font-awesome octicons

nerd-fonts's Introduction

Nerd Fonts Logo

Iconic font aggregator, collection, and patcher

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

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

Nerd Fonts is a project that patches developer targeted fonts with a high number of glyphs (icons). Specifically to add a high number of extra glyphs from popular 'iconic fonts' such as Font Awesome, Devicons, Octicons, and others.

The following flow diagram shows the current glyph sets included:

@SankeyMATIC Diagram

Diagram created using @SankeyMATIC

Important Notices

Table of Contents

TL;DR

Installation Options

Features

Developer / Contributor

Project Motivation

Additional Info

TL;DR

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

Various Download Options for Fonts

If you...

Features

Glyph Sets

🔍 🔍 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 1.603 NO
3270 Nerd Font 3270 3.0.1 NO
Agave Nerd Font Agave 37 NO
AnonymicePro Nerd Font Anonymous Pro 1.002 YES
Arimo Nerd Font Arimo 1.33 NO
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 2111.01 YES
CaskaydiaMono Nerd Font Cascadia Mono 2111.01 YES
CodeNewRoman Nerd Font Code New Roman (Sam Radian) 2.0 NO
ComicShannsMono Nerd Font Comic Shanns Mono 1.3.1 NO
CommitMono Nerd Font Commit Mono 1.143 NO
Cousine Nerd Font Cousine 1.211 NO
D2Coding Nerd Font D2Coding 1.3.2 NO
DaddyTimeMono Nerd Font DaddyTimeMono 1.2.3 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.200 NO
GoMono Nerd Font Go-Mono 2.010 NO
Gohu Nerd Font Gohu TTF, Gohu 2.0 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 1.5.2 NO
IntoneMono Nerd Font Intel One Mono 1.3.0 YES
Iosevka Nerd Font Iosevka 29.0.4 NO
IosevkaTerm Nerd Font Iosevka Term 29.0.4 NO
IosevkaTermSlab Nerd Font Iosevka Term Slab 29.0.4 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.400 NO
MartianMono Nerd Font MartianMono 1.0.0 NO
Meslo Nerd Font Meslo 1.21 NO
Monaspice Nerd Font Monaspace 1.0.0 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 2023/09 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.001 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.004 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

Option 1: Release Archive Download

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

Fonts are available for download as packages in the latest release A nice overview is on the Nerd Font site (but misses the more compact xv archives).

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

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

Option 2: Homebrew Fonts

Best option if on macOS and want to use Homebrew.

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

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

Option 3: Unofficial Chocolatey or Scoop Repositories

Option for Windows and wanting to use Chocolatey or Scoop.

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

choco install nerd-fonts-hack

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

scoop bucket add nerd-fonts
scoop install Hack-NF

Option 4: Arch Extra Repository

Option for Arch Linux and wanting to use Extra packages.

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

Option 5: Ad Hoc Curl Download

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

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

Linux

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

Note: deprecated alternative paths: ~/.fonts

macOS (OS X)

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

Option 6: Install Script

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

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

All fonts:

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

or, in Powershell (Windows only):

./install.ps1

Single font:

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

or, in Powershell (Windows only):

./install.ps1 <FontName>
./install.ps1 Hack
./install.ps1 HeavyData
./install.ps1 FiraCode, Hack
./install.ps1 DejaVuSansMono -WhatIf

Option 7: Clone the Repo

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

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

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

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

git clone --depth 1

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

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

If 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 8: Patch Your Own Font

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

Use the provided Python command line script to generate a patched font from your own font to get the extra new glyphs

See: Font Patcher for usage

  • use this option if you do not want to use one of the fonts provided
  • you will still need to copy the generated font to the correct font directory on your system

font-patcher

Nerd Fonts Patcher

Patching the font of your own choosing:

  • Use the script

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

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

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

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

Note

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

Full options follow, see also page explaining all options:

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

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

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

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

options:
  -h, --help            show this help message and exit
  -v, --version         show program's version number and exit
  -s, --mono, --use-single-width-glyphs
                        Whether to generate the glyphs as single-width not double-width (default is double-width) (Nerd Font Mono)
  --variable-width-glyphs
                        Do not adjust advance width (no "overhang") (Nerd Font Propo)
  --debug [{0,1,2,3}]   Verbose mode (optional: 1=just to file; 2*=just to terminal; 3=display and file)
  -q, --quiet           Do not generate verbose output
  --careful             Do not overwrite existing glyphs if detected
  -ext EXTENSION, --extension EXTENSION
                        Change font file type to create (e.g., ttf, otf)
  -out OUTPUTDIR, --outputdir OUTPUTDIR
                        The directory to output the patched font file to
  --makegroups [{-1,0,1,2,3,4,5,6}]
                        Use alternative method to name patched fonts (default=1)

Symbol Fonts:
  -c, --complete        Add all available Glyphs
  --codicons            Add Codicons Glyphs (https://github.com/microsoft/vscode-codicons)
  --fontawesome         Add Font Awesome Glyphs (http://fontawesome.io/)
  --fontawesomeext      Add Font Awesome Extension Glyphs (https://andrelzgava.github.io/font-awesome-extension/)
  --fontlogos           Add Font Logos Glyphs (https://github.com/Lukas-W/font-logos)
  --material, --mdi     Add Material Design Icons (https://github.com/templarian/MaterialDesign)
  --octicons            Add Octicons Glyphs (https://octicons.github.com)
  --powersymbols        Add IEC Power Symbols (https://unicodepowersymbol.com/)
  --pomicons            Add Pomicon Glyphs (https://github.com/gabrielelana/pomicons)
  --powerline           Add Powerline Glyphs
  --powerlineextra      Add Powerline Extra Glyphs (https://github.com/ryanoasis/powerline-extra-symbols)
  --weather             Add Weather Icons (https://github.com/erikflowers/weather-icons)

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

Examples

./font-patcher Droid\ Sans\ Mono\ for\ Powerline.otf
./font-patcher Droid\ Sans\ Mono\ for\ Powerline.otf -s -q
./font-patcher Droid\ Sans\ Mono\ for\ Powerline.otf --use-single-width-glyphs --quiet

./font-patcher Inconsolata.otf --fontawesome
./font-patcher Inconsolata.otf --fontawesome --octicons --pomicons
./font-patcher Inconsolata.otf

./FontForge.AppImage -script /tmp/nerdfonts/font-patcher /tmp/nerdfonts/CascadiaMonoPL-Semibold.ttf --fontawesome -out /tmp
./FontForge.AppImage -script $PWD/font-patcher $PWD/CascadiaMonoPL-Semibold.ttf --octicons -out $HOME

docker run --rm -v ~/myfont/patchme:/in:Z -v ~/myfont/patched:/out:Z nerdfonts/patcher
docker run --rm -v ~/Desktop/myfont/patchme:/in:Z -v ~/Desktop/myfont/patched:/out:Z nerdfonts/patcher --fontawesome

Usually you want the --complete option.

Gotta Patch 'em All Font Patcher!

  • for Contributor or Developer use

  • re-patches all fonts in the unpatched directory:

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

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

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

Full options:

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

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

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

Contributing

See contributing.md

Unstable File Paths

⚠️ Warning: 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:
    • ✅ Use: https://github.com/ryanoasis/nerd-fonts/tree/v3.0.0/patched-fonts/Hermit/Regular/HurmitNerdFont-Regular.otf
    • ✅ Use: https://github.com/ryanoasis/nerd-fonts/blob/0.9.0/patched-fonts/Hermit/Medium/complete/Hurmit%20Medium%20Nerd%20Font%20Complete.otf
    • ❌ Instead of: https://github.com/ryanoasis/nerd-fonts/blob/master/patched-fonts/Hermit/Medium/complete/Hurmit%20Medium%20Nerd%20Font%20Complete.otf

Other Good Fonts to Patch

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

nerd-fonts's People

Contributors

adavidzh avatar agriffis avatar allcontributors[bot] avatar andrewimeson avatar andys8 avatar b- avatar danbee avatar finii avatar folliehiyuki avatar fsackur avatar gitfool avatar gusbemacbe avatar hasecilu avatar her avatar igavelyuk avatar jrolfs avatar julien-blanchon avatar luanvso avatar marcelskyxd avatar moritzdietz avatar morrme avatar nathanielevan avatar polyzen avatar quiibz avatar reujab avatar romen avatar ryanoasis avatar segevfiner avatar sharkusk avatar tehnix avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nerd-fonts's Issues

Easier font-path on OSX

I found an easier workflow on OSX to patch fonts:

brew install fontforge
fontforge -script font-patcher /path/to/the/font

doing that you don't have to install older python only to patch fonts, as "fontforge" has already an embedded python environment

Incompatible codepoints?

I'm trying to use M+ 1m light Plus Nerd File Types Mono Plus Font Awesome Plus Octicons Plus Pomicons with the https://github.com/bhilburn/powerlevel9k prompt for zsh. It has mappings to https://github.com/gabrielelana/awesome-terminal-fonts, which I assumed would work with nerd-fonts. This seems not to be the case, as some of the icons don't work: Powerlevel9k/powerlevel9k#95.

I'm new to powerline/nerd-fonts/etc, so I'm not sure why this is the case? Is this project mapping codepoints differently than awesome-terminal-fonts? What's the formula for constructing that mapping, and what's the best way for me to sync up powerline9k with the nerd-fonts font I'd like to use?

New font: FiraCode

FiraCode

Basically FiraMono with programming ligatures.

This has actually already been patched by someone and posted online 😄 but it would be nice to add this font officially.

Ligatures lost when patching PragmataPro

The official unpatched PragmataPro supports many ligatures for programming. Using the font produced by the patcher produces file type icons, but ligatures are lost.

Include a python3 version of the font-patcher script

Hi,
First of all thanks a lot for this project.
Recently, I tried to patch the font Fantasque Sans Mono.
The problem is that on ArchLinux the fontforge library has bindings for python3 by default( python3 is the default python). So, running with ./font-patcher ... didn't work.
I had to use the fontforge program directly - fontforge -script font-patcher --fontawesome --careful FantasqueSansMonoRegular.ttf.
But the script is in python2. Using 2to3 on the file gave an attribute error. I found the problem and everything worked.

I suggest including a python3 version of the script in the repo. I am attaching it - it will save a lot of hassle for many people.

Besides, how about including Fantasque Sans Mono in the default patched fonts set ?

font-patcher.txt

patched font variants (bold, semibold etc) show up as duplicate in fontbook osx

Installing multiple font variants (bold, semibold, light, etc) on OSX using fontbook results in warnings and the font variants are all in separate "font families" ..

I tried installing multiple patched fonts (both Hack and Source Code Pro) so that should rule out that a single patched font is causing the issue.

screen shot 2016-02-07 at 01 29 46

As can be seen in the screenshot, multiple font families are created for the font variants while I expect a single font family named Sauce Code Pro containing all the variants. Also all the fonts are named: "NerdFontCompleteMono"

I hope we can sort this out because I really want to use the awesome glyphs in my setup

powerline extra symbols included ?

Hello,

I would like to know if these fonts also include the powerline extra symbols. I have tested some of theme with xfd but I didn't see any "flames" or other powerline extra symbols.

Thank you very much in advance :)

Retain glyph names when merging

I've noticed that glyph names are lost when patching fonts. For example, if I take the Octicons font as a source of glyphs and patch another font with it (with the --octicons option), then all the glyph names (e.g. octoface or mark-github or repo-forked for some of the standard GitHub glyphs) are lost and instead replaced by Unicode glyph codes (e.g. uniF008 for octoface).

Is there a chance to retain those names? They are very useful in finding specific glyph codes (remembering a name is much easier than remembering a code, especially since codes can change between font versions, while name is usually more stable).
Thank you!

Sauce Code Powerline Fonts?

First, thanks for the project, it has significantly improved my development experience.

With the 0.6.0 release the Sauce Code Pro Powerline fonts appears to have vanished from under patched-fonts. Was that intentional?

Thank again!

Odd gap between glyphs and text

Not sure what happened, but since updating my fonts to include the new icons, I'm getting some weird spacing between the powerline glyphs and regular text.

screen shot 2015-09-05 at 4 26 08 pm

Using other fonts that have powerline support do not have this issue.

Update Hack/Knack font to v2.015

The Hack project released v2.015 a little while ago, which greatly improved some glyphs and rendering. Having it in nerd-fonts would be great.

Reduce complexity in output?

Partially following up on #42 and also continuing my thoughts after dealing with #56 may I offer a few thoughts on how to reduce the staggering complexity in the number of fonts produced by the patcher?

With short names (e.g. "NC" instead of "Nerd Font Complete") Windows version is never needed.
Also, we could also get rid of most of thee complexity with variations.

Currently, you have two conflicts among glyph sets:

  1. 'Custom SetiUI' (52 glyphs) and 'Devicons' (198)
  2. 'FontAwesome' (609) and 'Octicons' (164)
    For the 1st there is no variation, 'SetUI' takes precedence. For the 2nd you either shift 'Octicons' if 'FA' is present or just have 'Octicons' in default positions without 'FA'.

So, in your scheme, only two fonts are needed:
2a) complete with 'Octicons' shifted and 'FA' in default position and
2b) complete with 'Octicons' in default position and 'FA' shifted

  • either completely or
  • have 'FA' glyphs following 'Octicons' range remain in their spot (~400 glyphs) and only shifting first ~200 (bigger than 164 above since 'Octicons' has a lot of holes in its range)

That's it in the current implementation!

Personally, I'd prefer in the 1st conflict to prioritize 'Devicons' to make it match the intended codepoints and allow using well-established reference tables (https://vorillaz.github.io/devicons/#/dafont) and then just shift 'SetiUI' to right after 'Devicons'

Separate download links for patched fonts to easier packaging

In order to make packages for each of the patched fonts it would be nice to provide a separate download link (I think releases in github might be able to release just one dir as well so as to do it per font) per font so that each package won't clone the entire repo for each of the fonts.

Wrong codepoints for Octoicons

Hi again. ;)

This time the codepoints for octoicons seem to be wrong. Haven't found a pattern there. If I do an echo "\uF020" "\uF000" "\uF001" "\uF005" "\uF0B2", none of the correct symbols show up:
bildschirmfoto 2015-09-25 um 11 08 29
Ignore the wrong symbols in the theme..

Tested with NerdFonts 0.5.0 Knack Plus Nerd File Types Plus Font Awesome Plus Octicons Plus Pomicons with iTerm2 on OSX Yosemite.

[osx] Font Book complains about duplicate fonts

This isn't a huge problem, but might be easy to fix.

After installing all the patched fonts under OSX, many of them show up as duplicate fonts in the Font Book app.

Not sure if this is the exact cause, but I noticed when inspecting these fonts that the "Unique name" value is unchanged between variations of the same font.

Missing file: glyph-source-fonts/Pomicons.otf

The Pomicons.otf file appears to be missing from the repo:

% /usr/bin/python ./font-patcher ~/.fonts/Input/Input_Fonts/Input/Input-Regular_\(InputMono-Regular\).ttf
The glyph named Tcommaaccent is mapped to U+021A.
But its name indicates it should be mapped to U+0162.
The glyph named Delta is mapped to U+0394.
But its name indicates it should be mapped to U+2206.
The glyph named Omega is mapped to U+03A9.
But its name indicates it should be mapped to U+2126.
The glyph named tcommaaccent is mapped to U+021B.
But its name indicates it should be mapped to U+0163.
The glyph named mu is mapped to U+03BC.
But its name indicates it should be mapped to U+00B5.
The requested file, Pomicons.otf, does not exist
Traceback (most recent call last):
  File "./font-patcher", line 92, in <module>
    pomicons = fontforge.open("glyph-source-fonts/Pomicons.otf")
EnvironmentError: Open failed

Is this an oversight or due to licensing?

Segmentation fault

Hello! I'm trying to patch Inconsolata, but any parameter I give to font-patcher causes a seg fault. Below are the package versions I'm using. I'd appreciate if you could tell me if there's anything I'm missing.

$ python --version
Python 2.7.9
$ fontforge --version
Copyright (c) 2000-2014 by George Williams. See AUTHORS for Contributors.
 License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
 with many parts BSD <http://fontforge.org/license.html>. Please read LICENSE.
 Based on sources from 20:50 BST  1-Apr-2015-D.
 Based on source from git with hash:
fontforge 20:50 BST  1-Apr-2015
libfontforge 20150401
$ ./font-patcher unpatched-sample-fonts/Inconsolata/Inconsolata\ for\ Powerline.otf
[1]    82858 segmentation fault  ./font-patcher

Change font naming convention (or allow custom names during conversion)

Currently both font file names and internal font names are a bit unwieldy.
The file names are too big and font names are unique for each style, which prevents Font Book from displaying them under one family group.
I understand the need to differentiate between many variants, though would prefer a simple
SourceCodePro-Medium-mNOP instead of
Sauce Code Pro Medium Plus Nerd File Types Mono Plus Octicons Plus Pomicons
for file names and something similar for font names (e.g. Source Code Pro mNOP font family while retaining original style names like Regular instead of Book).

Would it be possible to adjust the naming convention during conversion or allow some user input (e.g. sourcing a file with "original font names:new font names" that could be used for naming instead)? I'm most interested in font names since file names are much easier to change.
Thank you!

link broke MAC

cd ~/Library/Fonts && curl -fLo DroidSansMonoForPowerlinePlusNerdFileTypes.otf https://raw.githubusercontent.com/ryanoasis/nerd-fonts/master/patched-fonts/DroidSansMono/Droid%20Sans%20Mono%20for%20Powerline%20Plus%20Nerd%20File%20Types.otf
url: (22) The requested URL returned error: 404 Not Found
curl: (3) <url> malformed

vertically stretched icons

Hi there.
What shall I do to fix 'stretching' effect?
example:
alt text
emulator: gnome terminal
font: droid sans mono for powerline plus nerd file types mono 12

Also, I will be very grateful if someone describe how to patch default ubuntu mono font. :)

Powerline Icons are too small

Using mintty, the screenshot shows "Meslo LG S DZ" but the other "Meslo"-fonts, "Droid Sans Mono", "Bitstream Vera Sans Mono" and "DejaVu Sans Mono" also look like this.

powerline-icons-too-small

Error when using --careful

Running The following produces a error.

./font-patcher -s --fontawesome --octicons --pomicons --powerline --powerlineextra --careful PragamataPro.ttf

updating glyph: <Glyph Branch in font PragmataProNerdFontCompleteMono> Branch putting at: E0A0
updating glyph: <Glyph LN in font PragmataProNerdFontCompleteMono> LN putting at: E0A1
updating glyph: <Glyph padlock_closed in font PragmataProNerdFontCompleteMono> padlock_closed putting at: E0A2
updating glyph: <Glyph HardRightArrow in font PragmataProNerdFontCompleteMono> HardRightArrow putting at: E0B0
updating glyph: <Glyph SoftRightArrow in font PragmataProNerdFontCompleteMono> SoftRightArrow putting at: E0B1
updating glyph: <Glyph HardLeftArrow in font PragmataProNerdFontCompleteMono> HardLeftArrow putting at: E0B2
updating glyph: <Glyph SoftLeftArrow in font PragmataProNerdFontCompleteMono> SoftLeftArrow putting at: E0B3
updating glyph: <Glyph uniE0A3 in font DroidSansMonoForPowerlinePlusNerdFileTypesMono> uniE0A3 putting at: uniE0A3
Traceback (most recent call last):
  File "./font-patcher", line 423, in <module>
    copy_glyphs(sourceFont, symbolsPowerlineExtraRange1Start, symbolsPowerlineExtraRange1End, powerlineExtraSymbols, symbolsPowerlineExtraRange1Start, symbolsPowerlineExtraRange1End, True)
  File "./font-patcher", line 327, in copy_glyphs
    codepoint = int("0x" + copiedToSlot, 16)
ValueError: invalid literal for int() with base 16: '0xuniE0A3'

Running the same line without --careful it completes without error.

Wrong codepoints for Font-Awesome beginning on f00f in table

Hi there!

When I use "Sauce Code Powerline Plus Nerd File Types Mono Plus Font Awesome Plus Octicons" the codepoints starting from f00f are off by one.
Example: The codepoint for home-icon on the table is f015. This should be the correct one, but if I do an echo "\uF015" it shows the wrong symbol. In the patched version the home-symbol has the codepoint F014. This is the case for all subsequent glyphs (seems to get worse with ongoing icons).

Font Awesome fonts are way too big

After updating and trying to use some of the new Font Awesome glyphs, I noticed that in many of the patched fonts these glyphs display around twice as big as they should. Seems to only affect Font Awesome glyphs.

Interestingly, with a few of the patched fonts they show up normal size, but some of the other glyphs (like the > < symbols used by PowerLine) show up half-size.

Licensing compliance

Hi! It looks like you're distributing modified fonts. Some of them have licensing requirements that appear to not be met. A (non-exhaustive) list follows.

Anonymous (renamed to Anonymice?):
OFL - a copy of the copyright+license has to be included with all distributions. Modifications/originals must be released under the OFL.
http://www.marksimonson.com/fonts/view/anonymous-pro
http://scripts.sil.org/cms/scripts/page.php?item_id=OFL-FAQ_web

Droid Sans:
Apache v2.0 - a copy of the copyright+license has to be included with all distributions.
http://www.google.com/fonts/specimen/Droid+Sans
https://www.apache.org/licenses/LICENSE-2.0.html

Liberation (renamed to Literation?):
I'm assuming you've got a recent version, which would be under the OFL - old versions are under the GPL.
OFL - a copy of the copyright+license has to be included with all distributions. Modifications/originals must be released under the OFL.
https://fedorahosted.org/liberation-fonts/
http://scripts.sil.org/cms/scripts/page.php?item_id=OFL-FAQ_web

PragmataPro:
PragmataPro is not free software and the author hasn't ever made it available in a particularly permissive form. Also worth noting - you appear to have an older (buggy) version of PragmataPro which is missing certain ligatures added in 0.820.
http://www.fsd.it/fonts/pragmatapro.htm
http://www.fsd.it/fonts/eula.htm

Proggy:
Appears to be public domain?
http://upperbounds.net/

Source Code (renamed to Sauce Code?):
OFL - a copy of the copyright+license has to be included with all distributions. Modifications/originals must be released under the OFL.
https://github.com/adobe-fonts/source-code-pro
https://github.com/adobe-fonts/source-code-pro/blob/master/LICENSE.txt

Ubuntu Mono:
UFL - fonts and derivatives may only be redistributed under the UFL.
http://font.ubuntu.com/licence/

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.