HomePost

Setting Up CJK Fonts in Ghostty on macOS

2026-02-02

How to fix ugly fallback fonts for Korean (CJK) text in Ghostty by installing Noto Sans Mono CJK KR

The Gungseo Surprise

When you install Ghostty and type Korean text in the terminal, you'll encounter a familiar yet startling font.

Gungseo — a traditional Korean calligraphy-style font.

Korean text rendered in Gungseo in Ghostty

English text looks clean, but the moment you type Korean, it feels like a time warp to the Joseon dynasty. This happens because Ghostty can't find Korean glyphs and falls back to macOS's system fallback font — Gungseo.

The same applies to Japanese and Chinese. It's a CJK (Chinese, Japanese, Korean) problem in general.

Installing Noto Sans Mono CJK KR

Noto Sans Mono CJK KR, made by Google, is a monospaced font that supports all CJK characters. Perfect for terminal use.

You can install it easily with Homebrew.

bash
brew install --cask font-noto-sans-mono-cjk-kr

If you can see "Noto Sans Mono CJK KR" in Font Book after installation, you're good to go.

Configuring Ghostty

Open Settings... (Cmd + ,) from the Ghostty menu to open the config file (~/.config/ghostty/config).

Add the following to the config file.

text
font-family = "Noto Sans Mono CJK KR"

If you already have a preferred font for English text, you can specify font-family multiple times to create a fallback chain. Ghostty moves to the next font when it can't find a glyph in the first one.

text
font-family = "Menlo"
font-family = "Noto Sans Mono CJK KR"

This way, English text renders with Menlo, and Korean text renders with Noto Sans Mono CJK KR.

Mapping Specific Unicode Ranges

For more fine-grained control, you can use font-codepoint-map to directly specify Korean Unicode ranges.

text
font-family = "Menlo"
font-codepoint-map = "U+AC00-U+D7AF=Noto Sans Mono CJK KR"

U+AC00-U+D7AF covers the Hangul Syllables range. To include Hangul Jamo as well, add these:

text
font-codepoint-map = "U+1100-U+11FF=Noto Sans Mono CJK KR"
font-codepoint-map = "U+3130-U+318F=Noto Sans Mono CJK KR"
font-codepoint-map = "U+AC00-U+D7AF=Noto Sans Mono CJK KR"

In most cases, the font-family fallback approach is sufficient.

Applying the Settings

After saving the config file, select Reload Configuration (Cmd + Shift + ,) from the Ghostty menu to apply changes without restarting. Of course, restarting Ghostty works too.

Clean Korean text after applying Noto Sans Mono CJK KR

Gungseo is gone, replaced by a clean gothic font. The terminal becomes much more readable.

Adjusting Font Size

If the size balance between Korean and English text feels off, try adjusting font-size.

text
font-size = 14

Decimal values are supported, so fine-tuning like font-size = 13.5 is possible.

Summary

ItemValue
ProblemKorean text renders in Gungseo in Ghostty
CausemacOS uses fallback font when no CJK font is configured
SolutionInstall Noto Sans Mono CJK KR + configure Ghostty
Config file~/.config/ghostty/config
Install commandbrew install --cask font-noto-sans-mono-cjk-kr