term39 0.8.0

A modern, retro-styled terminal multiplexer with a classic MS-DOS aesthetic
term39-0.8.0 is not a library.

TERM39

CI Release License: MIT Rust Version

A modern terminal multiplexer with classic MS-DOS aesthetic, built with Rust. Full-screen interface with window management and complete terminal emulation.


██████ ██████ █████▄  ██▄  ▄██ ████▄ ▄█▀▀█▄
  ██   ██▄▄   ██▄▄██▄ ██ ▀▀ ██  ▄▄██  ▀▀▀██
  ██   ██▄▄▄▄ ██   ██ ██    ██ ▄▄▄█▀  ▄▄██▀

Screenshots

Features

  • Retro DOS Aesthetic: Classic blue-and-white color scheme with box-drawing characters, ~60fps rendering
  • Multiple Terminal Windows: Create, drag, resize, minimize, and maximize windows with mouse or keyboard
  • Window Management: Automatic tiling, snap to corners, focus management with ALT+TAB
  • Clipboard Support: System clipboard integration with drag-to-select, Ctrl+Shift+C/V, right-click menu
  • Customizable Themes: Classic, Dark, Monochrome, Green Phosphor, Amber (via --theme flag)
  • Cross-Platform: Linux, macOS, Windows with full VT100/ANSI support and true color
  • Linux Framebuffer Mode: Direct /dev/fb0 rendering with DOS text modes (40x25, 80x25, 80x43, 80x50), requires --features framebuffer-backend
  • ASCII Compatibility: --ascii flag for maximum terminal compatibility

Installation

From crates.io

cargo install term39  # Standard installation
cargo install term39 --features framebuffer-backend  # Linux with framebuffer support

Requires Rust (Install)

Linux Packages

Download from Releases:

  • Debian/Ubuntu: sudo dpkg -i term39_*_amd64.deb or sudo apt install ./term39_*_amd64.deb
  • Fedora/RHEL: sudo rpm -i term39-*.x86_64.rpm or sudo dnf install term39-*.x86_64.rpm
  • Arch (AUR): yay -S term39-bin or yay -S term39

macOS

tar xzf term39-*.tar.gz
sudo mv term39 /usr/local/bin/

From Source

git clone https://github.com/alejandroqh/term39.git
cd term39
cargo build --release  # Add --features framebuffer-backend for Linux framebuffer
./target/release/term39

Usage

./term39                          # Run with Unicode (recommended)
./term39 --ascii                  # ASCII mode for compatibility
./term39 --theme dark             # Themes: classic, dark, monochrome, green_phosphor, amber

Keyboard Shortcuts

Key Action Key Action
t / T New window / Maximized window h / s / l / c Help / Settings / License / Calendar
q / ESC Exit (desktop) ALT+TAB Switch windows
Ctrl+Shift+C / V Copy / Paste TAB / ENTER Navigate / Activate (dialogs)

Mouse Controls

  • Title bar: Drag to move | [X]/[+]/[_]: Close/Maximize/Minimize | ╬ handle: Resize
  • Click window: Focus | Bottom bar: Switch | Drag/Right-click: Select/Context menu

Architecture

Core: Double-buffered video system, window manager (Z-order/focus), VT100/ANSI parser (VTE), PTY integration (portable-pty) Rendering: Front/back buffers with dirty tracking, save/restore regions, shadow system for depth

Development

Prerequisites: Rust 1.70+ (Install)

cargo build --release                     # Build optimized binary
cargo run -- --ascii                      # Run in ASCII mode
cargo test && cargo clippy && cargo fmt   # Test, lint, format

Contributing

Fork, create branch, test with cargo test && cargo clippy, commit, push, open PR. Follow Rust best practices, run cargo fmt, keep commits atomic.

Roadmap

  • Configuration, tiling, snap corners, themes, clipboard, scrollback
  • Session persistence, tab completion, split panes, search, advanced selection

Dependencies

crossterm, chrono, portable-pty, vte, arboard

License

MIT License - see LICENSE file. Copyright (c) 2025 Alejandro Quintanar

Support

Issues | Discussions | Wiki