Skip to content

Stop the Mac's terminal text from looking heavy - #40

Merged
Lakr233 merged 1 commit into
owngoal-dev:mainfrom
coffin5257:mac-font-thicken-off
Oct 30, 2026
Merged

Lakr233 merged 1 commit into
owngoal-dev:mainfrom
coffin5257:mac-font-thicken-off

Conversation

@coffin5257

@coffin5257 coffin5257 commented Oct 29, 2026 •

Copy link
Copy Markdown
Contributor

On Mac, Latin text and PingFang Chinese draw visibly heavier than in Ghostty or other terminals using the same JetBrains Mono; the Chinese in particular reads like Linux rendering.

  • libghostty-spm's TerminalConfiguration.default calls withFontThicken(true), so every generated config starts with font-thicken = true. Ghostty's own default is false.
  • With it on, ghostty enables CoreText font smoothing for each glyph (setShouldSmoothFonts in font/face/coretext.zig), which is macOS's stroke dilation.
  • The app's overlay never said otherwise, so the Mac inherited it.

This sets font-thicken = false in the Catalyst branch of GhosttyAppConfiguration.terminal, after the library's base so it wins. iOS is untouched: I did not compare the smoothing there, so its binary is unchanged.

Before / after

The same text in JetBrains Mono and PingFang SC, 14 pt at 2x, rasterised with the CoreText settings ghostty uses for a glyph (gray alpha-only bitmap, font smoothing = font-thicken). Smoothing on lays down 33% more ink for these lines.

font-thicken = true (before) font-thicken = false (after)
font-thicken true font-thicken false

These are renders of the glyph path, not screenshots of the app window; the app's Metal blending is not in them.

Checked

  • Adding font-thicken = false under Settings ▸ Ghostty Configuration on a Mac and opening a new tab made the text render normally.
  • The Mac Catalyst build compiles with this change.

Not checked

  • iPhone and iPad rendering.

If you would rather change the default in libghostty-spm so every consumer gets it, this overlay line can simply go.

On Mac Catalyst, Latin text and PingFang Chinese drew visibly heavier
than in Ghostty or other terminals using the same JetBrains Mono.

libghostty-spm's base configuration sets `font-thicken = true`, which makes
ghostty turn on CoreText font smoothing for every glyph; ghostty's own
default is false. The app's overlay never said otherwise, so the Mac
inherited it. Turn it off on Catalyst only; iOS is left as it was, since
the smoothing was not compared there.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants