ryu.com
Cover: Terminal aesthetics — my monospace addiction
Design

Terminal aesthetics: my monospace addiction

Jun 24, 2026 · ≈ 12 min read

I spent about two years trying 47 different monospace fonts. From JetBrains Mono to Iosevka, from SF Mono to Cascadia Code. Every time I switched, I would type in the terminal with full seriousness, feeling out each character's spacing, its ligatures, the curve of its slashes.

Friends said I'd lost it. I said they didn't get it.

A monospace font isn't a "font," it's a work environment

When a designer spends hours fine-tuning pixel spacing on a Figma canvas, nobody blinks. But when a programmer spends half an hour choosing a monospace font, it gets called "a waste of time."

What's the difference? There is no difference. A monospace font is typography for code. You look at code 8–12 hours a day; every single character crosses your retina. A bad font — where l and 1 are indistinguishable, where 0 and O look identical — quietly adds cognitive load. You may not notice it, but your brain does.

Terminal aesthetics aren't anything new

Before the GUI existed, every computer interface was monospace. Characters on green phosphor screens, one per slot. It was a beauty forced out of constraint — no choices available, so every pixel had to be precise.

Then GUIs arrived and proportional fonts took over the desktop. But the terminal survived. Not because of technical limits, but because the structure of code demands monospacing. Alignment, indentation, column editing — natural in a monospace font, a disaster in a proportional one.

My font evolution

2019: the system default, Menlo. Nothing wrong with it, except the ~ glyph was ugly enough to bother me.

2020: Fira Code. The first monospace font that genuinely wowed me — ligatures turned => into a real arrow. Over time though it felt a bit "fat," the character spacing too generous.

2021: JetBrains Mono. The most balanced option at the time. It fixed Fira Code's heaviness while keeping excellent readability. The distinction between l, 1, and I is superbly done.

2022–2024: Iosevka. A fully customizable font — you can adjust width, spacing, ligature style. It took me about three months to arrive at a configuration I liked. Once tuned, there was no going back.

2025 to now: SF Mono. Apple's system font. No ligatures, no flashy features. But the base glyph design is impeccable. There's an elegance in doing nothing at all.

The ligature debate

A years-long argument in programming communities: are monospace ligatures "useful" or "deceptive"?

Fans say: != becoming is more intuitive; >= becoming reads better.

Critics say: it's visual deception — the characters haven't changed, only their appearance. When you see in a diff but the source is actually >=, it misleads you.

My position: use ligatures, but only in the editor. Turn them off in diff tools and terminals. That way you keep the readability without being misled during precision work.

The right way to pick a font

Don't judge from screenshots. Download the font file, open some code you know well in your editor, and use it for at least 20 minutes. See whether it feels comfortable. If after 20 minutes you're still noticing the font itself, it's wrong for you. The best font is the kind whose existence you forget.


What monospace font do you use? Write to ryu@scolv.com and tell me.

Keep reading