# 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`