Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ghosttype

TUI font & theme picker for Ghostty. Browse every font Ghostty sees with rendered specimens (code sample, ligatures, weights) drawn inline via the Kitty graphics protocol, preview all built-in themes, and apply either with one key — the config is written and Ghostty live-reloads instantly.

A full Ghosttype session with the font list, Fonts/Themes navigation, and the rendered specimen preview:

Ghosttype font and theme picker interface

Why

Terminals can't mix fonts in one screen, so comparing fonts normally means editing the config and reloading over and over. ghosttype renders real specimens of each font as images and shows them inline, then applies your pick and reloads Ghostty in place — no restart, no manual editing.

Requirements

  • macOS with Ghostty ≥ 1.2 (ghostty on PATH)
  • Bun ≥ 1.1

Install

brew install sergio-prog/tap/ghosttype
ghosttype

or run from source:

git clone https://github.com/Sergio-prog/ghosttype
cd ghosttype
bun install
bun start

Keys

key action
↑ ↓ pgup pgdn navigate
tab switch Fonts / Themes
type filter list
enter apply + live reload
ctrl+r reload Ghostty config
esc clear filter / quit

How it works

  • fonts come from ghostty +list-fonts, themes from Ghostty's themes resource dirs (built-in + ~/.config/ghostty/themes)
  • specimens are rendered to PNG with @napi-rs/canvas using the palette of your active theme, sized to the preview pane via a terminal cell-size query (CSI 16t), and displayed with the Kitty graphics protocol
  • applying edits font-family / theme in your Ghostty config, then sends SIGUSR2 to the Ghostty app process, which reloads the config in place

Safety

Before the first write of a session, your config is backed up to config.ghosttype-bak next to it. Only the font-family and theme lines are touched; everything else is preserved as-is.

Limitations

  • macOS only for now (font discovery, config path, and the reload signal are wired for the Ghostty macOS app; Linux PRs welcome — reload there is systemctl reload --user app-com.mitchellh.ghostty.service)
  • nerd-font symbols may render as boxes inside specimens when the canvas fallback chain lacks them; the terminal itself is unaffected

Contributing

Issues and PRs are welcome. Keep it small and focused; run bun run typecheck before submitting. Conventional commit messages, please.

License

MIT

About

👻 TUI font & theme picker for Ghostty — inline font specimens

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages