March 25, 2026

Gridlock: letters vs your terminal

Rendering complex scripts in terminal and OSC 66

Terminals still mangle Arabic/Indic; devs yell 'fix it' vs 'just use Emacs'

TLDR: A dev explains why terminals still scramble Arabic and Indian scripts and demos OSC 66 as a fix; commenters clash over whether it’s worth the effort, roast flaky tools that break on resize, and revive the “just use Emacs” escape hatch. It matters because everyone deserves readable text in the command line.

Terminals are still stuck in a 1970s “one box per letter” mindset, and a new post by developer Santhosh Thottingal lays out why that breaks languages like Arabic and Indic scripts—and what might finally fix it. He points to Kitty’s OSC 66, a new way for terminals to ask “how wide is this shaped text, really?”, plus his demo tool osc66 showing a path forward. Cue the comments: chaos, comedy, and a classic culture war.

One camp is fuming that today’s tools crumble under pressure. One developer says an AI recommended the popular Python TUI library Rich—only to watch the layout implode on resize, while a Node-based tool handled it better. Another camp asks the blunt question: do most people even need complex scripts in the terminal, and what will it break for everyone else? Meanwhile, the old guard chimes in with the eternal punchline: skip the terminal grid entirely—Emacs and Acme already did.

Between the jokes about “1970s tech cosplay” and “just switch to Node,” there’s cautious optimism: a standards group is looking at future modes, and OSC 66 could be the first real crack in the grid. But the vibe is clear: users want terminals that don’t garble their names and commands—and they’re tired of workarounds.

Key Points

  • Terminal emulators inherit a character-cell grid model that assumes one character per cell, conflicting with complex script behavior.
  • Monospace font constraints do not fit Indic and Arabic scripts, causing clusters to occupy irregular widths and break layouts.
  • Width prediction and the distinction between text shaping and rendering are central challenges for complex script display in terminals.
  • Kitty’s Text Sizing Protocol (OSC 66) offers a text measurement approach; the author built “osc66” to demonstrate it.
  • Standardization efforts, including the TCSS Working Group and proposed Mode 2027, aim to improve adoption across terminals.

Hottest takes

It can't handle terminal window resize and the layout gets messed up — faangguyindia
How often are complex scripts rendered in terminal? — Affric
The issue is handled both by Emacs and Acme by eschewing the terminal. — skydhash
Made with <3 by @siedrix and @shesho from CDMX. Powered by Forge&Hive.