Metadata-Version: 2.4
Name: textual_tty
Version: 0.0.5
Summary: A tty for Textual UIs
Author-email: Gareth Davidson <gaz@bitplane.net>
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: License :: Public Domain
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
License-File: LICENSE.md
Requires-Dist: textual
Requires-Dist: pywinpty ; sys_platform == 'win32'
Requires-Dist: textual-window
Requires-Dist: pre-commit ; extra == "dev"
Requires-Dist: pytest ; extra == "dev"
Requires-Dist: coverage ; extra == "dev"
Requires-Dist: pytest-cov ; extra == "dev"
Requires-Dist: pydoc-markdown ; extra == "dev"
Requires-Dist: build ; extra == "dev"
Requires-Dist: twine ; extra == "dev"
Requires-Dist: ruff ; extra == "dev"
Requires-Dist: mkdocs ; extra == "dev"
Requires-Dist: textual-window ; extra == "dev"
Project-URL: Bug Tracker, https://github.com/bitplane/textual-tty/issues
Project-URL: Homepage, https://bitplane.net/dev/python/textual-tty
Project-URL: Source Code, https://github.com/bitplane/textual-tty
Provides-Extra: dev

# textual-tty

A terminal emulator for Textual apps.

Made by summarizing tmux's code, implementing a similar structure then almost
vibe coding it into existence with Claude and Gemini.

Currently lacks a cursor, mouse, any decent debugging tools, and is too chatty,
but it's still somewhat usable.

## Demo

```bash
uvx textual-tty
```

## Usage

There's 3 main classes:

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

See the demo for more info.

## Links

* [🏠 home](https://bitplane.net/dev/python/textual-tty)
* [🐍 pypi](https://pypi.org/project/textual-tty)
* [🐱 github](https://github.com/bitplane/textual-tty)

## License

WTFPL with one additional clause

1. Don't blame me

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

## todo

- [x] fix resizing - apps like htop don't resize
- [ ] implement cursor (with width)
- [ ] arrow keys for input in tui apps, not sure what's happening
- [ ] performance improvements
  - [x] profile it!
  - [ ] reduce draw calls
- [ ] bugs
  - [x] scroll region
  - [ ] blank background to end of line
  - [x] `ESC[nnnnb` repeat sequence (nethogs)
- [ ] more coverage
- [ ] reduce redundancy redundancy of repeated repeated code code

