mirror of
https://github.com/JanDeDobbeleer/oh-my-posh.git
synced 2026-08-24 02:34:19 -05:00
Choosing a font was a five-stage terminal UI: fetch the list, scroll it, download, unzip, install. It pulled bubbletea, lipgloss, bubbles and a fuzzy matcher for what amounted to a non-filtering list of names with one highlighted - and Go runs a linked package's init before main whether or not the subcommand was invoked, so everyone typing at a prompt paid for it on every render. A CLI already has a way to answer "which fonts are there": print them. oh-my-posh font list oh-my-posh font install Meslo The list can be grepped, piped and scripted, none of which a picker allows, and install is what it always was underneath - resolve, fetch, unzip - now reporting on a status line and a progress bar. Removes 20 modules including go-runewidth, whose package init built a 2.2MB lookup table nothing in the prompt path ever read. The atotto/clipboard fork this repo carried goes with them: bubbletea was the only thing that needed it. Binary 17,330,176 to 15,981,056 bytes (-7.8%). Init, median of 11 runs, 39.3ms to 6.8ms - on every invocation, prompt renders included. BREAKING CHANGE: `oh-my-posh font install` now requires a font name; run `oh-my-posh font list` to see them. The interactive picker is gone, and with it the --headless flag, which existed to skip it. Entire-Checkpoint: ef231d69c9bf