You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Powerline font detection misses Nerd Fonts v3 names, the NF short form, and fonts in subfolders #738
With a Nerd Font v3 installed (the current Nerd Fonts release naming), the TUI's Powerline Setup reports Font Status: ✗ Not Installed - Press (i) to install Powerline fonts, and the status message says fonts are not detected — although the terminal draws the Powerline glyphs fine. The same font file is detected under its old v2 name; only its name differs:
How to reproduce
Put JetBrainsMonoNerdFont-Regular.ttf (Nerd Fonts v3, e.g. the Homebrew font-jetbrains-mono-nerd-font cask) in ~/Library/Fonts/ on macOS or ~/.local/share/fonts/ on Linux.
Open the TUI → Powerline Setup: it reports "✗ Not Installed".
Rename the same file to the old v2 style, JetBrains Mono Regular Nerd Font Complete.ttf, and the status flips to "✓ Installed".
Why
checkPowerlineFonts (src/utils/powerline.ts) is a top-level readdirSync of the font folders matched against file-name patterns. It misses common setups:
Nerd Fonts v3 file names have no space./nerd font/i does not match JetBrainsMonoNerdFont-Regular.ttf, HackNerdFont-Regular.ttf or CaskaydiaCoveNerdFont-Regular.ttf.
The short v3 form is not matched either.JetBrainsMonoNF-Regular.ttf.
Fonts in subfolders are never seen. For example ~/.local/share/fonts/NerdFonts/..., /usr/share/fonts/TTF/..., or /usr/share/fonts/opentype/PowerlineSymbols.otf from the Debian fonts-powerline package.
This also affects the font-safe separator fallback proposed in #604: keyed on this detection, it would replace the Powerline glyphs with | for all of these setups. The fork hit exactly that after implementing the fallback (live repro and discussion: axisrow#62; the screenshot above is from there). The closed #56 is symptom-adjacent but has a different cause.
Fix
Proposed in a PR to follow immediately: match nerd ?font and an NF token, and scan the font folders recursively (depth-capped).
Follow-up (out of scope here)
Terminals with built-in Powerline glyphs (Ghostty, kitty, WezTerm) have no font file to find, so they will still be reported as "not installed". I don't have these terminals and can't verify such a change, so I'm leaving it to someone who does.
The two checks use different matchers. Powerline Setup shows the async fc-list | grep -i powerline status, while the sync file-name scan drives the rest; on a machine with both a Powerline-named font and a v3 Nerd Font the two places can disagree.
Activity