
Building Multiplexing and PTY’s in nono.sh was a real opener to the world of terminals, so many areas to go wrong , especially when dealing with two processes - one of them sandboxed..
Window size propagation, parsing ANSI/VT100/xterm escape sequences, maintaining a screen grid with attributes, scrollback, alternate screen buffer, and then re-rendering it onto a possibly-differently-sized real terminals. Resize is brutal - reflowing wrapped lines while preserving cursor semantics was painful - I could go on.
I recently listened to the @Pragmatic_Eng show with @mitchellh talking about what he faced while building Ghostty and it was like discovering someone else is into some weird band no one else has ever heard of.
English














