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.3.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.3-py3-none-any.whl (41.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: textual_tty-0.1.3.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.3.tar.gz
Algorithm Hash digest
SHA256 987c035f53d10b0d41a951d33d14a427e91038b7b53da2545013dde0440d0c88
MD5 5a371cb5d57cc4c12527b161573e9f5a
BLAKE2b-256 4c2a727170a85ad909125d66a699c3cf0ce6d459607affe39b962d5a9f696835

See more details on using hashes here.

File details

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

File metadata

  • Download URL: textual_tty-0.1.3-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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 5619c62b546ad3aa61924a05dd3a8b43b4c36ac15c7becb3d7926b570febe86a
MD5 0e73ad0ce3eb7ef03092f48e393f19e9
BLAKE2b-256 198d56c02ca0ab504256a545e88b819f2aab041ad9b55457c3ed8624de7429e6

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