# tui/font-list
Enumerate the monospaced font families available to `tui/set-font` —
display names, sorted case-insensitively.
## Syntax
[tui/font-list]
## Returns
A vector of display-name strings, e.g.
@( "Adwaita Mono" "Deja Vu Sans Mono" "Fira Code" "Jet Brains Mono" "Liberation Mono" "Noto Sans Mono" "Source Code Pro" ... )
`nil` on the ANSI host (`retra` — fonts belong to the terminal
emulator there).
## Notes
- Monospace only. One representative file per family (the Regular
cut, or the plain stem) is probed with FreeType: uniform glyph
advances, every rendered glyph fitting its cell, and real distinct
Latin glyphs (a script-only font whose Latin collapses into one
placeholder can't drive a grid). Proportional families — and
Latin-less script fonts — are dropped. The list therefore contains
exactly the names `tui/set-font` will accept.
- Cached. The scan + probes run once per process — the first call
may take a moment on a large font directory; later calls are free.
- Display names derive from file stems (style cuts stripped, camel-case
split), so they can differ slightly from the font's internal family
name. Either spelling resolves in `tui/set-font` — matching is
normalised (spacing/case/separators ignored).
- Pairs with `dialog/search` for a picker:
set chosen [dialog/search "Font" [tui/font-list]] if ($chosen != nil) { [tui/set-font $chosen] }
- GL hosts only (retro / hydra).
## See Also
`tui/set-font`, `tui/font`, `tui/cell-size`