Skip to content

Fonts

Eleven monospaced families, two pixel faces, and the glyph set that makes the unpatched ones usable in a terminal.

Most of the list is a Nerd Font build: the original typeface plus several thousand glyphs from Font Awesome, Devicons, Octicons and Material. Starship, lsd, superfile and btop all draw those glyphs, and without them they render as empty boxes. Three families here have no patched build — pair those with Symbols Nerd Font as a fallback and the icons resolve anyway.

Ligatures, or not

Half this list has programming ligatures and half deliberately does not, which is the first thing to decide.

LigaturesFamilies
YesJetBrains Mono, Fira Code, Maple Mono, JetBrains Maple Mono, MonoLisa
NoIBM Plex Mono, Meslo LG, Source Code Pro, Google Sans Code, Space Mono, Departure Mono

A ligature draws != as a single crossed-out equals sign. It reads well, and it also means the glyph on screen no longer corresponds one-to-one with the characters in the file — which is fine until you are counting columns, or reading a language where <- and < - differ. Both positions are defensible; the families in the second row simply never offer the choice.

Where these come from

Nerd Fonts patches the upstream families and publishes the results; Homebrew repackages those same archives as casks. Either route gives identical files.

Every patched family is in homebrew-cask itself — the separate homebrew/cask-fonts tap was retired, so nothing needs tapping first:

brew search '/font-.*-nerd-font/'
brew install --cask font-fira-code-nerd-font

Each family is published in three variants, which differ in how wide the icons are rather than in the typeface:

VariantIcon widthUse it for
Nerd FontVariable — icons may be wider than one cellEditors and anywhere proportional icon width is fine
Nerd Font MonoForced to a single cellTerminals, where a double-width glyph breaks column alignment
Nerd Font PropoProportionalProportional-width UI, not code

Turning features on and off

Ligatures live in the calt (contextual alternates) feature. ssXX stylistic sets usually change a group of characters, cvXX character variants usually change one, and zero is the slashed zero. Patching for Nerd Fonts leaves all of them intact.

Two things are worth knowing before reaching for these. Individual ligatures cannot be switched off one at a time — you disable calt wholesale, or pick the ssXX/cvXX toggles that change the glyphs involved. And disabling calt does not disable the alternates: 'calt' 0, 'zero', 'cv01' keeps a slashed zero and one character variant while dropping every ligature.

ApplicationHow
VS Code"editor.fontLigatures": "'calt' 0, 'zero', 'cv01'" — a plain true or false also works
Zed"buffer_font_features": { "calt": false, "ss01": true }
JetBrains IDEsSettings → Editor → Font → Enable ligatures — all or nothing
XcodeNo OpenType control at all; install a no-ligature build instead
Ghosttyfont-feature = -calt to disable, font-feature = ss01 to enable
kittyfont_family family="Fira Code" features="+zero -calt"
WezTermharfbuzz_features = { "calt=0", "clig=0", "liga=0" }
iTerm2Profiles → Text → Use ligatures — all or nothing, and calt only
AlacrittyNo ligature support
Editors that offer no OpenType control need a font built without ligatures. JetBrains publishes JetBrains Mono NL for exactly this, and Nerd Fonts patches it as JetBrainsMonoNL Nerd Font.

Sans-serif text faces

Not monospaced and not in the grid above — these are body-copy faces for a site or a document rather than anything a terminal would use. All five are on Google Fonts under the Open Font License, so the specimen page is also the download.

Google Fonts serves a multi-family download from the same page — selecting several and taking one archive is quicker than five separate trips.

Dank Mono

A monospaced coding face sold directly by its designer rather than distributed through Google Fonts or Homebrew, so it has no cask and no specimen page to link. Italics are a true cursive rather than a slanted roman, which is the reason people buy it.

FamilyTypeDownload
Dank MonoPaiddank.sh
This post is licensed under CC BY 4.0 by the author.
Last updated on