DWM-Terminal v0.2
What's Changed in v0.2
Features & Protocol Improvements
- DECSTBM Scrolling Margins: Added ANSI margin bounds (
\e[top;bottomr), bounded linefeed, and CSIS/Tsequence handlers to support modern fixed-footer TUI applications and status bars. - Two-Pass Row Rendering: Decoupled cell backgrounds and mouse selection highlights from glyph and overlay drawing in
render_frame(), preventing adjacent backgrounds from clipping wide Nerd Font icons. - Multi-Click Mouse Selection: Double-click expands across word/token boundaries and triple-click selects the full row, with automatic
PRIMARYandCLIPBOARDsynchronization. - Modifier Keypress Isolation: Standalone modifier presses (
Super,Shift,Ctrl,Alt) no longer clear active selections or reset scrollback before key combinations (such asSuper+C) are completed. - ECMA-48 Private CSI Handling: Parser now recognizes private prefixes (
?,>,<,=) and guards SGR dispatch, preventing sequences like\e[>4m(modifyOtherKeys) from triggering stray underlines. - Configurable Keybindings & Styling: Support for custom key combinations, configurable cursor shapes (
block,bar,underline), blinking toggles, and asymmetric padding via~/.config/dwmterm/config.
Testing & Verification
- Test suite expanded to 39/39 passing unit & integration tests (
make test).
Full Changelog: v0.1...v0.2