Files
liyepan 580abbcadf feat: VoiletXterm - Qt5 terminal workspace for SSH, Telnet and serial
Terminal core (src/core, QtCore only, headless testable):
- VT100/xterm parser: CSI/OSC/DCS, SGR 256/truecolor, scroll regions,
  insert/delete, DEC special graphics, alternate screen
- cell grid with 5000 line scrollback, CJK wide chars, combining marks
- xterm 256 color palette

Terminal widget (src/term):
- QPainter renderer with run batching, wide char clipping, cursor blink
- mouse selection (char/word/line), auto copy, middle click paste
- full key encoding: arrows + DECCKM, F1-F12, modifiers, ctrl/alt
- IME support via inputMethodEvent

Transports (src/session):
- SSH through the system OpenSSH client on a forkpty pseudo terminal,
  so agent, ProxyJump, known_hosts and 2FA keep working
- Telnet with IAC negotiation (NAWS, ECHO, SGA)
- Serial via QSerialPort

UI (src/ui):
- tabbed main window, session dialog with saved profiles
- dark violet theme, CLI targets (user@host:port, telnet://, serial:)

Tests:
- tests/test_core: escape sequence and layout assertions
- tests/test_widget: offscreen render checks and key encoding
2026-10-23 17:38:16 +08:00

52 lines
1.2 KiB
Prolog

QT += core gui widgets network serialport
TARGET = voiletxterm
TEMPLATE = app
CONFIG += c++17 warn_on
CONFIG -= app_bundle
DEFINES += QT_DEPRECATED_WARNINGS
INCLUDEPATH += src
SOURCES += \
src/main.cpp \
src/core/CharWidth.cpp \
src/core/Palette.cpp \
src/core/Screen.cpp \
src/core/VtParser.cpp \
src/term/TerminalTheme.cpp \
src/term/TerminalWidget.cpp \
src/session/PtyProcess.cpp \
src/session/SerialTransport.cpp \
src/session/SessionFactory.cpp \
src/session/SessionSpec.cpp \
src/session/SshTransport.cpp \
src/session/TelnetTransport.cpp \
src/ui/MainWindow.cpp \
src/ui/SessionDialog.cpp \
src/ui/SessionStore.cpp \
src/ui/Style.cpp
HEADERS += \
src/core/Cell.h \
src/core/CharWidth.h \
src/core/Palette.h \
src/core/Screen.h \
src/core/VtParser.h \
src/term/TerminalTheme.h \
src/term/TerminalWidget.h \
src/session/PtyProcess.h \
src/session/SerialTransport.h \
src/session/SessionFactory.h \
src/session/SessionSpec.h \
src/session/SshTransport.h \
src/session/TelnetTransport.h \
src/session/Transport.h \
src/ui/MainWindow.h \
src/ui/SessionDialog.h \
src/ui/SessionStore.h \
src/ui/Style.h
unix: LIBS += -lutil