A terminal emulator for embedded Linux handheld consoles, rewritten in Python + PySDL2 + PIL, ported from SimpleTerminal (C/SDL2 version).
- Full VT100 escape sequence parsing (30+ CSI commands)
- 256 colors + SGR attributes (bold / underline / reverse / blink)
- Interactive PTY shell — vim, top, htop all work
- Key calibration wizard — maps your physical buttons on first launch, adapts to any handheld automatically
- On-screen keyboard (OSK) with sticky modifier keys (Ctrl+C/D/W combos)
- Scrollback buffer (256 lines)
- CJK double-width rendering with bundled fonts (Apache 2.0) — no firmware font dependency
- Bluetooth keyboard isolation via device ID (no key conflicts)
- Key guide screen + L1+R1 combo to reset keymap
- Source code (zip / tar.gz) — run anywhere with
python3+pysdl2+Pillow - SimpleTerminalPy-v1.0.0-aarch64.tar.gz — PyInstaller binary for armv8/aarch64 handhelds (built on Ubuntu 22.04, glibc 2.35; requires system SDL2,
PYSDL2_DLL_PATH=/usr/lib)
- Extract to a directory the handheld can run apps from, e.g.
/mnt/sdcard/Roms/APPS/ - Copy
SimpleTerminalPy-Raw.shto<that dir>/SimpleTerminalPy.sh - Launch "SimpleTerminalPy" from the Tools menu
- Extract
SimpleTerminalPy-v1.0.0-aarch64.tar.gzto a runnable directory, e.g./mnt/sdcard/Roms/APPS/ - Copy
SimpleTerminalPy/SimpleTerminalPy.shto the APPS level - Launch "SimpleTerminalPy" from the Tools menu
- First launch shows a key guide screen, then the calibration wizard — press each button when prompted (short press to confirm, hold 3s to abort)
- X: show / hide on-screen keyboard · Y: move OSK · MENU: quit
- L1+R1: delete keymap and re-calibrate on next start
- Full key table in the README
- Color emoji not supported (reasonable trade-off for embedded terminals)
- Bold/italic SGR attributes render without glyph variation
- Brief frame drops possible on extreme full-screen refreshes (e.g. vim initial startup)
MIT License — based on SimpleTerminal (MIT), fonts under Apache 2.0 / Bitstream Vera License.
