bittty
A pure Python terminal emulator.
Demo
Run the standalone demo:
python ./demo/terminal.py
Or use the textual demo to see it in a TUI:
uvx textual-tty
Links
License
WTFPL 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.
Recent changes
- 🏃 more performance
- 🏗️ rewrite architecture
- 🐛 scroll region: scroll up in
vimcorrupts outside scroll region - 🏃 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
bugs / todo
- 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
- 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
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
bittty-0.1.2.tar.gz
(78.8 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
bittty-0.1.2-py3-none-any.whl
(93.6 kB
view details)
File details
Details for the file bittty-0.1.2.tar.gz.
File metadata
- Download URL: bittty-0.1.2.tar.gz
- Upload date:
- Size: 78.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/7.0.0 CPython/3.10.20
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
469cb447736379aabc2e4aa43abf16f43ec2ff39806d51172d8da2459947ebcd
|
|
| MD5 |
7938d4b556003f04b27559a1309df3e7
|
|
| BLAKE2b-256 |
43ee6c9d5555dfaa77314777ae8dc6b7048b2300dbef21a014096adf2bd9d680
|
File details
Details for the file bittty-0.1.2-py3-none-any.whl.
File metadata
- Download URL: bittty-0.1.2-py3-none-any.whl
- Upload date:
- Size: 93.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/7.0.0 CPython/3.10.20
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e18dee76f500f3eca539ce296e08c53e20ed2bc9fad5c0a1e736f8ae2c74b1c9
|
|
| MD5 |
39f5cdd88173ec6969257830b6c97e36
|
|
| BLAKE2b-256 |
6bb0dedd5cc9fcf8bed0e6247dd2e6ef58f04fc52522036fb042b0507a68519b
|