Skip to main content

A tty for Textual UIs

Project description

textual-tty

A pure Python terminal emulator for Textual apps, that aims for tmux compatibility

Currently buggy and a bit slow, but it's still somewhat usable.

Demo

uvx textual-tty

Usage

There's 3 main classes:

  1. Terminal, a standalone terminal that doesn't need Textual.
  2. TextualTerminal, a tty widget subclass.
  3. TerminalApp, a terminal emulator in a window.

Read the demo code for more info.

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.

todo / ideas

  • split pty out into a cross platform package
  • debug logger
    • add arg parser to demo app
    • make file logging optional (and not default)
  • break terminal project out from Textual deps
    • pick a snazzy name - bitty/titty
    • gui
      • make framebuffer.py
      • choose a backend
    • asciinema streaming -> terminal web
  • performance improvements
    • parse with regex over large buffer sizes
  • scrollback buffer
    • consistent + performant scrollback
    • scrollbar support when used
  • bugs
    • blank background to end of line
      • figure out proper order
    • corruption in stream - debug it
    • scroll region: scroll up in vim corrupts outside scroll region
  • reduce redundancy redundancy of repeated repeated code code
    • code code of of redundancy redundancy
  • add terminal visuals
    • bell flash effect (enabled in base class, disabled in textual_terminal)
  • Theme support
    • base terminal using config + themes
    • theme for textual widget using CSS styles
    • textual app using theme/css loader
  • flesh out terminal app
    • multiple tabs
    • settings panel
      • bell: system [Y/n], title bar [y/N], flash [y/N]
      • mouse: display [y/N]
      • wide chars detection
      • theme selector/editor
  • terminal quantizer
    • move inside app
  • Windows support

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

textual_tty-0.1.2.tar.gz (34.8 kB view details)

Uploaded Source

Built Distribution

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

textual_tty-0.1.2-py3-none-any.whl (41.0 kB view details)

Uploaded Python 3

File details

Details for the file textual_tty-0.1.2.tar.gz.

File metadata

  • Download URL: textual_tty-0.1.2.tar.gz
  • Upload date:
  • Size: 34.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for textual_tty-0.1.2.tar.gz
Algorithm Hash digest
SHA256 7efa29b365e160b1283f4fed9252933674fb93667a1174dfd6a61eae9529987d
MD5 2060a8410dc341e4b2f1c297252b58c9
BLAKE2b-256 d64931baa8b64ba26a6138b43a55ca311e8c4ec2298e1e0ff5111eb7512d11d8

See more details on using hashes here.

File details

Details for the file textual_tty-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: textual_tty-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 41.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for textual_tty-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 99f708a0ff83c95a81e1de0f5a2a9bbb22deee13086eff2047fc46a35fbdc958
MD5 28136436b6b2fa3c86a362059e4ace95
BLAKE2b-256 b59bf1a6ce2c919433f37b90f7fa6edffcf5205bd31157497c21a8c6abe05765

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