Skip to main content

Textual-based TUI demonstration of par-term-emu-tui-rust terminal emulator

Project description

Par Term Emu TUI Rust

PyPI PyPI - Python Version Runs on Linux | MacOS | Windows Arch x86-64 | ARM | AppleSilicon PyPI - Downloads PyPI - License

A modern terminal emulator TUI built with Textual and par-term-emu-core-rust, featuring efficient rendering, comprehensive ANSI support, and advanced terminal features.

Screenshot

"Buy Me A Coffee"

Quick Start

# Clone and install
git clone https://github.com/paulrobello/par-term-emu-tui-rust.git
cd par-term-emu-tui-rust
uv sync

# Install components (recommended)
par-term-emu-tui-rust install all

# Run the TUI
make run

See the Quick Start Guide for detailed instructions.

Features

  • Efficient Rendering - Textual Line API for optimal performance
  • Full ANSI Support - 16/256/true color, bold, italic, underline, and more
  • Scrollback Buffer - Navigate history with keyboard and mouse
  • Mouse Support - Text selection, clickable URLs, and mouse tracking
  • Hyperlinks - OSC 8 hyperlinks and auto-detected plain text URLs
  • Notifications - OSC 9/777 notification support with toast messages
  • Shell Integration - Working directory tracking, prompt navigation
  • Screenshots - Multiple formats (PNG, SVG, HTML) with auto-capture
  • Themes - 12 built-in themes with custom theme support
  • Clipboard - Cross-platform copy/paste with OSC 52 support

See Features for complete feature documentation.

Documentation

Getting Started

Reference

Advanced

Installation

Prerequisites

  • Python 3.12 or higher
  • uv package manager
  • Terminal with true color support

Install from Source

# Clone repository
git clone https://github.com/paulrobello/par-term-emu-tui-rust.git
cd par-term-emu-tui-rust

# Install dependencies
uv sync

# Install all components
par-term-emu-tui-rust install all

See Installation Guide for detailed instructions.

Basic Usage

# Run with default shell
par-term-emu-tui-rust

# Use custom shell
par-term-emu-tui-rust --shell /bin/zsh

# Apply theme
par-term-emu-tui-rust --theme solarized-dark

# Take screenshot
par-term-emu-tui-rust --screenshot 3 --auto-quit 5

Key Bindings

Shortcut Action
Ctrl+Shift+Q Quit application
Ctrl+Shift+S Take screenshot
Ctrl+Shift+C Copy selection
Shift+PageUp/Down Scroll history
Shift+Home/End Jump to top/bottom

See Key Bindings for complete reference.

Configuration

Configuration file location: ~/.config/par-term-emu-tui-rust/config.yaml

Create default configuration:

par-term-emu-tui-rust --init-config

Essential settings:

# Theme
theme: "dark-background"

# Scrollback
scrollback_lines: 10000

# Clipboard
auto_copy_selection: true
middle_click_paste: true

# Screenshots
screenshot_format: "png"

See Configuration Reference for all options.

Technology

  • Python 3.12+ - Application logic
  • Textual - TUI framework
  • par-term-emu-core-rust - Terminal emulation (Rust)
  • PyYAML - Configuration
  • pyperclip - Clipboard support
  • xdg-base-dirs - XDG compliance

Architecture

graph TD
    App[TerminalApp]
    Widget[TerminalWidget]
    Core[Terminal Core Rust]
    Render[Rendering Engine]
    Display[Display]

    App --> Widget
    Widget --> Core
    Core --> Render
    Render --> Display

    style App fill:#e65100,stroke:#ff9800,stroke-width:3px,color:#ffffff
    style Widget fill:#1b5e20,stroke:#4caf50,stroke-width:2px,color:#ffffff
    style Core fill:#0d47a1,stroke:#2196f3,stroke-width:2px,color:#ffffff
    style Render fill:#4a148c,stroke:#9c27b0,stroke-width:2px,color:#ffffff
    style Display fill:#880e4f,stroke:#c2185b,stroke-width:2px,color:#ffffff

See Architecture for detailed system design.

Contributing

Contributions are welcome! Please read the Contributing Guide for:

  • Development setup
  • Code quality standards
  • Testing requirements
  • Pull request process

Development Setup

# Clone repository
git clone https://github.com/paulrobello/par-term-emu-tui-rust.git
cd par-term-emu-tui-rust

# Install dependencies
uv sync

# Install pre-commit hooks
uv run pre-commit install

# Run quality checks
make checkall

Resources

Troubleshooting

For common issues and solutions, see the Troubleshooting Guide.

Quick diagnostics:

# Enable debug logging
par-term-emu-tui-rust --debug

# Test with minimal config
par-term-emu-tui-rust --auto-quit 2

License

This project is licensed under the MIT License - see the LICENSE file for details.

Author

Paul Robello - probello@gmail.com

Acknowledgments

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

par_term_emu_tui_rust-0.1.0.tar.gz (690.1 kB view details)

Uploaded Source

Built Distribution

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

par_term_emu_tui_rust-0.1.0-py3-none-any.whl (72.8 kB view details)

Uploaded Python 3

File details

Details for the file par_term_emu_tui_rust-0.1.0.tar.gz.

File metadata

  • Download URL: par_term_emu_tui_rust-0.1.0.tar.gz
  • Upload date:
  • Size: 690.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for par_term_emu_tui_rust-0.1.0.tar.gz
Algorithm Hash digest
SHA256 78d0e82843c485105dfad4cfa8355b05e794142b36a30ce1b764a9f259288ca9
MD5 02c03aae848893c7271fa867abb63583
BLAKE2b-256 3328f0c648ac3765f12e00b87a0e0d4783cb24057d03a78f1f4f1aefcc69a440

See more details on using hashes here.

Provenance

The following attestation bundles were made for par_term_emu_tui_rust-0.1.0.tar.gz:

Publisher: deployment.yml on paulrobello/par-term-emu-tui-rust

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file par_term_emu_tui_rust-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for par_term_emu_tui_rust-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 334a7381af0e619c56d66a2451c42a0d08aec3994728f375ad0ba5a972fba41d
MD5 cfacc14f02eb5a00db3e9ca88167b233
BLAKE2b-256 aba4d69a4c5a1068e2373795495b66738ba322e2d5516633201f28876b7b8f33

See more details on using hashes here.

Provenance

The following attestation bundles were made for par_term_emu_tui_rust-0.1.0-py3-none-any.whl:

Publisher: deployment.yml on paulrobello/par-term-emu-tui-rust

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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