TERM39
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
--themeflag) - Cross-Platform: Linux, macOS, Windows with full VT100/ANSI support and true color
- Linux Framebuffer Mode: Direct
/dev/fb0rendering with DOS text modes (40x25, 80x25, 80x43, 80x50), requires--features framebuffer-backend - ASCII Compatibility:
--asciiflag for maximum terminal compatibility
Installation
From crates.io
# Standard installation
# Linux with framebuffer support
Requires Rust (Install)
Linux Packages
Download from Releases:
- Fedora/RHEL:
# or: sudo dnf install term39-*-1.x86_64.rpm - Arch (AUR):
yay -S term39-binoryay -S term39 - Tarball:
macOS
# Intel (x86_64)
# Apple Silicon (ARM64)
Windows
Download from Releases:
# Option 1: Run the installer (x86_64)
.\term39-v*-windows-x86_64-pc-windows-msvc-installer.exe
# Option 2: Portable - Extract ZIP
Expand-Archive term39-v*-windows-x86_64.zip
# Add to PATH (optional)
$env:Path += ";$PWD\term39-v*-windows-x86_64"
From Source
# Add --features framebuffer-backend for Linux framebuffer
Usage
# green_phosphor, amber
Keyboard Shortcuts
General
| Key | Action | Key | Action |
|---|---|---|---|
t / T |
New window / Maximized window | q / ESC |
Exit (desktop) |
F1 / h |
Show help | s |
Settings |
l |
License | c |
Calendar |
Window & Session
| Key | Action | Key | Action |
|---|---|---|---|
F2 / ALT+TAB |
Switch windows | F3 |
Save session |
F4 / Ctrl+L |
Clear terminal |
Copy & Paste
| Key | Action | Key | Action |
|---|---|---|---|
F6 / Ctrl+Shift+C |
Copy selection | F7 / Ctrl+Shift+V |
Paste |
Cmd+C (macOS) |
Copy selection | Cmd+V (macOS) |
Paste |
Dialog Controls
| Key | Action | Key | Action |
|---|---|---|---|
TAB / Arrow keys |
Navigate buttons | ENTER |
Activate button |
ESC |
Close dialog |
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)
&& &&
Contributing
Fork, create branch, test with cargo test && cargo clippy, commit, push, open PR. Follow Rust best practices, run cargo fmt, keep commits atomic.
Dependencies
crossterm, chrono, portable-pty, vte, arboard
License
MIT License - see LICENSE file. Copyright (c) 2025 Alejandro Quintanar
Support
Issues | Discussions | Wiki