Fonts
Ten monospaced families, 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. Two 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.
| Ligatures | Families |
|---|---|
| Yes | JetBrains Mono, Fira Code, Maple Mono, JetBrains Maple Mono, MonoLisa |
| No | IBM Plex Mono, Meslo LG, Source Code Pro, Google Sans Code, Space 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-fontEach family is published in three variants, which differ in how wide the icons are rather than in the typeface:
| Variant | Icon width | Use it for |
|---|---|---|
Nerd Font | Variable — icons may be wider than one cell | Editors and anywhere proportional icon width is fine |
Nerd Font Mono | Forced to a single cell | Terminals, where a double-width glyph breaks column alignment |
Nerd Font Propo | Proportional | Proportional-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.
| Application | How |
|---|---|
| VS Code | "editor.fontLigatures": "'calt' 0, 'zero', 'cv01'" — a plain true or false also works |
| Zed | "buffer_font_features": { "calt": false, "ss01": true } |
| JetBrains IDEs | Settings → Editor → Font → Enable ligatures — all or nothing |
| Xcode | No OpenType control at all; install a no-ligature build instead |
| Ghostty | font-feature = -calt to disable, font-feature = ss01 to enable |
| kitty | font_family family="Fira Code" features="+zero -calt" |
| WezTerm | harfbuzz_features = { "calt=0", "clig=0", "liga=0" } |
| iTerm2 | Profiles → Text → Use ligatures — all or nothing, and calt only |
| Alacritty | No ligature support |
JetBrainsMonoNL Nerd Font.