Version 3.6.0 Feature Release
The main headline here is that the mouse is supported on the Linux console with GPM. There are performance improvements and some bug fixes, plus improved reporting of pixel sizes on window resize events as well.
- fix(vt): let the segmenter decide clustering, not Go's unicode tables by @dylanpulver in https://github.com/gdamore/tcell/pull/1170
- chore(deps): bump golang.org/x/term from 0.45.0 to 0.46.0 by @dependabot[bot] in https://github.com/gdamore/tcell/pull/1173
- chore(deps): bump golang.org/x/text from 0.41.0 to 0.42.0 by @dependabot[bot] in https://github.com/gdamore/tcell/pull/1174
- fix: invalidate blank cells after resizing CellBuffer by @jakezwang in https://github.com/gdamore/tcell/pull/1176
- fix(st): re-enable SGR mouse (1006) and focus (1004) reporting by @akashchamp in https://github.com/gdamore/tcell/pull/1179
- perf(cell): fill areas without an allocation per cell by @ayn2op in https://github.com/gdamore/tcell/pull/1184
- fix(resize): report the pixel size in resize events by @ayn2op in https://github.com/gdamore/tcell/pull/1186
- fix(input): extend bare Escape timeout on Windows by @gdamore in https://github.com/gdamore/tcell/pull/1188
- feat(gpm): support Linux console mouse by @gdamore in https://github.com/gdamore/tcell/pull/1190
- perf: reuse SetContent strings for Unicode glyphs by @gdamore in https://github.com/gdamore/tcell/pull/1191
- @dylanpulver made their first contribution in https://github.com/gdamore/tcell/pull/1170
- @jakezwang made their first contribution in https://github.com/gdamore/tcell/pull/1176
- @akashchamp made their first contribution in https://github.com/gdamore/tcell/pull/1179
Full Changelog: https://github.com/gdamore/tcell/compare/v3.5.0...v3.6.0
Version 3.5.0 Feature & BugFixes
The main improvements are fixes around key handling, especially a regression in the snappiness of ESC. A feature was added to support filling/clearing just a portion of the screen as well.
- fix(tscreen): Ensure tty read does not block Fini by @codesoap in https://github.com/gdamore/tcell/pull/1165
- feat: add FillArea to fill a rectangular region by @ChrisJr404 in https://github.com/gdamore/tcell/pull/1166
- fix: request kitty associated text for shifted keys by @fishman in https://github.com/gdamore/tcell/pull/1167
- fix(input): keep bare ESC on the short timeout by @nasxisbest in https://github.com/gdamore/tcell/pull/1171
- fix: more escape snappiness -- also tighten up the test per CodeRabbit by @gdamore in https://github.com/gdamore/tcell/pull/1172
- @ChrisJr404 made their first contribution in https://github.com/gdamore/tcell/pull/1166
- @fishman made their first contribution in https://github.com/gdamore/tcell/pull/1167
- @nasxisbest made their first contribution in https://github.com/gdamore/tcell/pull/1171
Full Changelog: https://github.com/gdamore/tcell/compare/v3.4.2...v3.5.0
Version 3.4.2 Bug Fix Release
- chore(deps): bump actions/setup-go from 6 to 7 by @dependabot[bot] in https://github.com/gdamore/tcell/pull/1141
- perf: skip grapheme iterator for printable ASCII by @ayn2op in https://github.com/gdamore/tcell/pull/1145
- chore(deps): bump github.com/lucasb-eyer/go-colorful from 1.4.0 to 1.4.1 by @dependabot[bot] in https://github.com/gdamore/tcell/pull/1153
- chore(deps): bump golang.org/x/text from 0.40.0 to 0.41.0 by @dependabot[bot] in https://github.com/gdamore/tcell/pull/1157
- fix(tscreen): guard inputLoop keyQ send against shutdown deadlock (revives #673) by @gmlewis in https://github.com/gdamore/tcell/pull/1155
- fix(st): The st terminal is very limited - disable extensions that br… by @gdamore in https://github.com/gdamore/tcell/pull/1160
- fix: Fix SS3 application-keypad sequences (fixes #1159) by @gdamore in https://github.com/gdamore/tcell/pull/1161
- fix(input): extend escape sequence timeouts by @gdamore in https://github.com/gdamore/tcell/pull/1162
- @gmlewis made their first contribution in https://github.com/gdamore/tcell/pull/1155
Full Changelog: https://github.com/gdamore/tcell/compare/v3.4.1...v3.4.2
Version 3.4.1 Bug Fix Release
- perf: skip grapheme segmentation on identical cell re-Put by @ayn2op in https://github.com/gdamore/tcell/pull/1114
- chore(deps): bump golang.org/x/sys from 0.44.0 to 0.45.0 by @dependabot[bot] in https://github.com/gdamore/tcell/pull/1117
- chore(deps): bump golang.org/x/term from 0.43.0 to 0.44.0 by @dependabot[bot] in https://github.com/gdamore/tcell/pull/1121
- chore(deps): bump golang.org/x/text from 0.37.0 to 0.38.0 by @dependabot[bot] in https://github.com/gdamore/tcell/pull/1122
- chore(deps): bump codecov/codecov-action from 6 to 7 by @dependabot[bot] in https://github.com/gdamore/tcell/pull/1120
- chore(deps): bump actions/checkout from 6 to 7 by @dependabot[bot] in https://github.com/gdamore/tcell/pull/1126
- Preserve Windows key release state by @gdamore in https://github.com/gdamore/tcell/pull/1128
- Fix screen Init/Fini races by @gdamore in https://github.com/gdamore/tcell/pull/1130
- docs: SimulationScreen is removed notice. (fixes #1119) by @gdamore in https://github.com/gdamore/tcell/pull/1131
- chore(deps): bump golang.org/x/term from 0.44.0 to 0.45.0 by @dependabot[bot] in https://github.com/gdamore/tcell/pull/1135
- chore(deps): bump golang.org/x/text from 0.38.0 to 0.40.0 by @dependabot[bot] in https://github.com/gdamore/tcell/pull/1137
- Fix draw spinning forever on a suspended screen by @stefanhaller in https://github.com/gdamore/tcell/pull/1139
- fix(input): decode CSI R as F3 by @kke in https://github.com/gdamore/tcell/pull/1133
- chore(wasm): stop inlining ghostty-vt.wasm in ghostty-web.js by @gdamore in https://github.com/gdamore/tcell/pull/1140
- @kke made their first contribution in https://github.com/gdamore/tcell/pull/1133
Full Changelog: https://github.com/gdamore/tcell/compare/v3.4.0...v3.4.1
Version 3.4.0 Feature Release
This release has quite a number of bug fixes, but it also introduces some substantial new capabilities. Mostly the new support for advanced key reporting, along with backing support in the mouse demo, and enhanced configurability and overrides both for the application and for the user (environment variables).
This also replaces the old WASM terminal with a new version based on the libghostty implementation. This should be much faster, and nicer to work with, with a larger set of full features such as advanced key reporting, better support for resizing, etc.
- fix: possible panic in getConsoleInput if no event returned by @AntoineGS in https://github.com/gdamore/tcell/pull/1068
- Sanitize titles and notifications (fixes #1066) by @gdamore in https://github.com/gdamore/tcell/pull/1069
- feat: Optionally sanitize content before putting to the terminal (fix… by @gdamore in https://github.com/gdamore/tcell/pull/1071
- feat: Add reporting of keyboard protocol (fixes #967) by @gdamore in https://github.com/gdamore/tcell/pull/1073
- C1 handling improvements by @gdamore in https://github.com/gdamore/tcell/pull/1074
- feat(keys): Add support for advanced key reporting by @gdamore in https://github.com/gdamore/tcell/pull/1075
- feat(wasm): Introduce ghostty-wasm as backing WASM terminal (fixes #7… by @gdamore in https://github.com/gdamore/tcell/pull/1076
- fix: close OSC8 hyperlinks (fixes #1078) by @gdamore in https://github.com/gdamore/tcell/pull/1080
- feat: KeyBacktab updates for advanced mode (fixes #1018) by @gdamore in https://github.com/gdamore/tcell/pull/1081
- feat: support pixel-precision mouse reporting (CSI ?1016h) by @ImGajeed76 in https://github.com/gdamore/tcell/pull/1077
- fix(input): accept Unicode modifyOtherKeys codepoints by @ayn2op in https://github.com/gdamore/tcell/pull/1083
- Fix reporting of key releases by @tihirvon in https://github.com/gdamore/tcell/pull/1088
- chore(deps): bump golang.org/x/term from 0.42.0 to 0.43.0 by @dependabot[bot] in https://github.com/gdamore/tcell/pull/1085
- chore(deps): bump golang.org/x/text from 0.36.0 to 0.37.0 by @dependabot[bot] in https://github.com/gdamore/tcell/pull/1087
- MInor bug fixes by @gdamore in https://github.com/gdamore/tcell/pull/1097
- Preserve orphaned UTF-16 surrogates on Windows by @gdamore in https://github.com/gdamore/tcell/pull/1104
- vt: prune tab stops after resize by @gdamore in https://github.com/gdamore/tcell/pull/1105
- vt: ignore malformed SGR parameters by @gdamore in https://github.com/gdamore/tcell/pull/1106
- Limit inbound control strings by @gdamore in https://github.com/gdamore/tcell/pull/1107
- fix: cells should be marked dirty even if they have no content (fixes… by @gdamore in https://github.com/gdamore/tcell/pull/1108
- fix: lock SetSize screen mutations by @gdamore in https://github.com/gdamore/tcell/pull/1109
- tscreen: prevent terminal mutation after Fini by @gdamore in https://github.com/gdamore/tcell/pull/1110
- Avoid extra keyboard protocols on Windows by @gdamore in https://github.com/gdamore/tcell/pull/1111
- [codex] Fix OSC 8 hyperlink state transitions by @gdamore in https://github.com/gdamore/tcell/pull/1112
- @ImGajeed76 made their first contribution in https://github.com/gdamore/tcell/pull/1077
Full Changelog: https://github.com/gdamore/tcell/compare/v3.3.0...v3.4.0
Version 2.13.9 Bug Fix Release
- fix: fix simscreen double chan closure on disposal by @pancsta in https://github.com/gdamore/tcell/pull/1035
- fix(input): handle ESC during CSI and SS3 parse states per ECMA-48 by @ModeEngage in https://github.com/gdamore/tcell/pull/1054
- fix: backport OSC 8 sanitizer to v2
Full Changelog: https://github.com/gdamore/tcell/compare/v2.13.8...v2.13.9
V3.3.0 Feature Release
- chore(deps): bump golang.org/x/term from 0.40.0 to 0.41.0 by @dependabot[bot] in https://github.com/gdamore/tcell/pull/1040
- ci: only run the CI on main and on PRs by @gdamore in https://github.com/gdamore/tcell/pull/1049
- fix(mouse): work around Ghostty false motion press bug by @noborus in https://github.com/gdamore/tcell/pull/1051
- Fix expected bell count in beep_test.go by @wangzhione in https://github.com/gdamore/tcell/pull/1052
- style: unify spelling of OSC in code comments by @CatsDeservePets in https://github.com/gdamore/tcell/pull/1050
- fix(input): handle ESC during CSI and SS3 parse states per ECMA-48 by @ModeEngage in https://github.com/gdamore/tcell/pull/1053
- chore(deps): bump golang.org/x/sys from 0.42.0 to 0.43.0 by @dependabot[bot] in https://github.com/gdamore/tcell/pull/1056
- feat(events): add Unwrap() to EventError by @Tubbles in https://github.com/gdamore/tcell/pull/1058
- chore(deps): bump golang.org/x/text from 0.35.0 to 0.36.0 by @dependabot[bot] in https://github.com/gdamore/tcell/pull/1055
- chore(deps): bump golang.org/x/term from 0.41.0 to 0.42.0 by @dependabot[bot] in https://github.com/gdamore/tcell/pull/1057
- Faster rendering with better grapheme segmentation by @gdamore in https://github.com/gdamore/tcell/pull/1060
- Fix for broken terminal negotiation in Windows by @gdamore in https://github.com/gdamore/tcell/pull/1063
- Sanitize OSC 8 links (fixes #1061) by @gdamore in https://github.com/gdamore/tcell/pull/1064
- @wangzhione made their first contribution in https://github.com/gdamore/tcell/pull/1052
- @CatsDeservePets made their first contribution in https://github.com/gdamore/tcell/pull/1050
- @Tubbles made their first contribution in https://github.com/gdamore/tcell/pull/1058
Full Changelog: https://github.com/gdamore/tcell/compare/v3.2.0...v3.3.0
Version 2.1.3.8 Bug Fix Release
This fixes two bugs, both involving wide characters (including emoji) and terminal bugs.
Full Changelog: https://github.com/gdamore/tcell/compare/v2.13.7...v2.13.8
Version 3.1.2 Bug Fix Release
The main reason for releasing this is to get out two fixes that were offered up by others.
- Infinite loop bug in pasting
- Wide characters disappearing at right margin
- chore: Move unicode demo into demos by @gdamore in https://github.com/gdamore/tcell/pull/993
- feat(emulator): introduce new buffering API by @gdamore in https://github.com/gdamore/tcell/pull/994
- chore: move color demo to demos, update copyrights for demos by @gdamore in https://github.com/gdamore/tcell/pull/995
- feat(emulator): Implement cursor shapes (DECSCUSR) by @gdamore in https://github.com/gdamore/tcell/pull/999
- chore(deps): bump golang.org/x/term from 0.38.0 to 0.39.0 by @dependabot[bot] in https://github.com/gdamore/tcell/pull/996
- chore(deps): bump golang.org/x/text from 0.32.0 to 0.33.0 by @dependabot[bot] in https://github.com/gdamore/tcell/pull/997
- Add clipboard emulator and update demo for it. by @gdamore in https://github.com/gdamore/tcell/pull/1000
- More osc52 related improvements, new HasClipboard API by @gdamore in https://github.com/gdamore/tcell/pull/1001
- chore: move cursors demo to demos and add test for it by @gdamore in https://github.com/gdamore/tcell/pull/1002
- tests: Add some more test coverage for the clipboard demo. by @gdamore in https://github.com/gdamore/tcell/pull/1003
- feat(emulator): Implement OSC 8 by @gdamore in https://github.com/gdamore/tcell/pull/1004
- tests: More test cases for input parser edge cases by @gdamore in https://github.com/gdamore/tcell/pull/1005
- chore: drop the hyperlink demo - styles demo already covers this by @gdamore in https://github.com/gdamore/tcell/pull/1006
- tests: add test for charsets - also drop long extinct nacl build tag by @gdamore in https://github.com/gdamore/tcell/pull/1007
- fix(tscreen): fix infinite loop in paste by @wedaly in https://github.com/gdamore/tcell/pull/1013
- emulator support for keyboard layouts by @gdamore in https://github.com/gdamore/tcell/pull/1012
- ci: ignore tests for coverage purposes by @gdamore in https://github.com/gdamore/tcell/pull/1014
- feat(emulator): Implement keypad handling correctly by @gdamore in https://github.com/gdamore/tcell/pull/1015
Full Changelog: https://github.com/gdamore/tcell/compare/v3.1.1...v3.1.2
Version 2.13.7 Bug Fix Release
This fixes two bugs:
- wide not overwriting adjacent character (#976)
- paste on Windows did not handle certain runes (#984)
- fix(windows): Windows input (paste input) may arrive as UTF-16 still … by @gdamore in https://github.com/gdamore/tcell/pull/987
Full Changelog: https://github.com/gdamore/tcell/compare/v2.13.6...v2.13.7