Skip to main content

a pure python tty

Project description

bittty

A pure Python terminal emulator.

Almost usable; some scroll region problems, doesn't like textual in textual yet.

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

  1. Don't blame me

Do wtf you want, but don't blame me when it rips a hole in your trousers.

Recent changes

  • 🐌 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 \n to act like \r\n so 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-tty into separate package

bugs / todo

  • 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
  • scrollback buffer
    • implement logloglog for scrollback with wrapping
  • bugs
    • corruption in stream - debug it - utf8 split on boundary
    • scroll region: scroll up in vim corrupts outside scroll region
  • 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

Project details


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.0.9.tar.gz (37.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bittty-0.0.9-py3-none-any.whl (43.3 kB view details)

Uploaded Python 3

File details

Details for the file bittty-0.0.9.tar.gz.

File metadata

  • Download URL: bittty-0.0.9.tar.gz
  • Upload date:
  • Size: 37.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.18

File hashes

Hashes for bittty-0.0.9.tar.gz
Algorithm Hash digest
SHA256 53428e505a84d8e25c77a4f1fba1d568d4c04ee9b8f0cc7d53bd3024799cf0f0
MD5 f4fed4279bddfc5fbe6cef05e5f51cbe
BLAKE2b-256 fb4ad4e41b51bd9a3ec77f3fc276235d395356eedcb5e856d6def3689c34447b

See more details on using hashes here.

File details

Details for the file bittty-0.0.9-py3-none-any.whl.

File metadata

  • Download URL: bittty-0.0.9-py3-none-any.whl
  • Upload date:
  • Size: 43.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.18

File hashes

Hashes for bittty-0.0.9-py3-none-any.whl
Algorithm Hash digest
SHA256 2c5fe7095b210705ebf73b7172640162063931cfaceb4ff48dffd3057e5a3b63
MD5 dc7548ac3b8f587d5a8eab263e21d710
BLAKE2b-256 b64ace273a7026a150c6eefa7b0c2fc45161b79b45feed206b9c382a091e5cb7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page