A pure Python terminal emulator.
Almost usable; some scroll region problems, doesn't like textual in textual yet.
Run the standalone demo:
python ./demo/terminal.pyOr use the textual demo to see it in a TUI:
uvx textual-ttyWTFPL with one additional clause
- Don't blame me
Do wtf you want, but don't blame me when it rips a hole in your trousers.
- 🏃 squeeze another 15% performance out of it
- ✀ fix utf8 and escape code splitting across buffer boundaries
- 🪟 tests run on Windows runner
- 📉 added parser benchmarking and tui graphs
- 🐌 use regex for parsing to speed things up a tad (~2x faster)
- 📚 document half a billion DEC private modes we don't support
- 🔙 DECLM - allow
\nto act like\r\nso we don't have to rely on cooked input on the pty when using as a library. - 🖼️ DEC Special Graphics
- 🐌 Faster colour/style parser
- ⛓️💥 Split out from
textual-ttyinto separate package
- Implement grapheme clustering (thanks Xavier G)
-
SIGWINCHhandler atomicity + buffer resizes - architecture - pretty big
- gui
- make a terminal input class, for standalone input
- make
framebuffer.py - choose a display driver
- performance improvements
- reconsider CSI end char approach
- line cache for outputs
- [.] revisit colours / styles
- scrollback buffer
- implement
logloglogfor scrollback with wrapping
- implement
- bugs
- scroll region: scroll up in
vimcorrupts outside scroll region
- scroll region: scroll up in
- add terminal overlay visuals
- bell flash effect
- make cursor an overlay
- make mouse an overlay
- debug overlay for scroll regions
- Support themes
- bittty-specific escape sequences
- visible mouse on / off
- debugging info
- record
- list sequences + values
- Document all the escape sequences
- collect books for a terminal library