Skip to content

Pin BIZ UDGothic Bold as ghostty CJK fallback#282

Merged
ikuwow merged 1 commit into
mainfrom
add-ghostty-japanese-fallback-font
Jul 10, 2026
Merged

Pin BIZ UDGothic Bold as ghostty CJK fallback#282
ikuwow merged 1 commit into
mainfrom
add-ghostty-japanese-fallback-font

Conversation

@ikuwow

@ikuwow ikuwow commented Jul 10, 2026

Copy link
Copy Markdown
Owner

Summary

Pin BIZ UDGothic Bold as an explicit CJK fallback for ghostty by adding a second font-family line to xdg-config/ghostty/config.

Why

Without an explicit CJK fallback, ghostty's runtime font discovery on macOS 26.5 is unstable: CJK codepoints (notably ) render with different faces after display switches. Root cause is documented upstream in ghostty-org/ghostty#12916 (with related #8712, #707).

Pinning locks the CJK cascade to a deterministic face across sessions and display changes.

Why BIZ UDGothic Bold specifically

  • ghostty +show-face --string="のあ情報" on the unpinned state reported BIZ UDGothic as the family ghostty was already selecting most of the time
  • Cross-check via Morisawa Fonts image search (fontsjourney.morisawafonts.com) on a screenshot of the rendered CJK matched TBUD Gothic Std B (79% for the round sibling, 70% for the base). TBUD Gothic is what BIZ UDGothic is the OFL public release of (Google Fonts specimen)
  • Pinning BIZ UDGothic Bold reproduces the pre-change appearance more faithfully than pinning the Regular face (Regular face changes weight/shape enough to be noticeable)

Verification

ghostty +show-face --string="のあ情報実際ABCabc0123!@#-_=+()" after the change:

  • All CJK codepoints (, , , , , ) resolve to BIZ UDGothic
  • All ASCII codepoints (A-C, a-c, 0-3, punctuation) resolve to Monaco
  • No cross-family bleed for the primary text style

Config took effect on the running ghostty instance without a restart. No visible regression in existing terminal workloads (shell prompts, Claude Code, tmux).

Side effect (follow-up: #281)

Bold ASCII (SGR 1, markdown emphasis) is drawn using BIZ UDGothic Bold's Latin glyphs, not Monaco. This is because Monaco has no Bold face (system_profiler SPFontsDataType confirms Style: Regular only), so ghostty's per-codepoint fallback picks the first face in the cascade that has both the codepoint and Bold weight, and BIZ UDGothic Bold fits that requirement for ASCII too. This matches the pre-change behavior — ghostty was already routing Bold ASCII through the same font before the pin, so no regression here.

Without an explicit fallback, ghostty's font discovery on macOS 26.5
picks unstable faces for CJK codepoints, and characters like の
occasionally render with a different face after display switches
(ghostty-org/ghostty#12916). Pinning locks the CJK cascade to a
single deterministic face.

BIZ UDGothic Bold was chosen because it matches the pre-change
appearance ghostty was already producing in most sessions
(confirmed via ghostty +show-face and cross-checked by identifying
the rendered face through Morisawa Fonts image search, which
matched TBUD Gothic — the commercial sibling of BIZ UDGothic).

Follow-up in #281: route Bold ASCII to Menlo instead of relying on
BIZ UDGothic Bold's Latin glyphs.

Co-authored-by: Claude Opus 4.7 (1M context) <[email protected]>
@ikuwow ikuwow marked this pull request as ready for review July 10, 2026 08:48
@ikuwow ikuwow merged commit a384e71 into main Jul 10, 2026
6 checks passed
@ikuwow ikuwow deleted the add-ghostty-japanese-fallback-font branch July 10, 2026 08:53
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.

1 participant