Releases: gdamore/tcell
Version 2.7.4 Bug Fix Release
This release fixes a problem with restoring cursor location properly on Windows.
It also includes a new stress test for your terminal (FPS monitor) contributed by @Bios-Marcel
Version 2.7.3 Bug Fix Release
This release just updates the terminfo data using current data from Ubuntu 24.04 (Noble).
It fixes a regression where we dropped some capabilities including StrikeThrough for some terminals.
Version 2.7.2 Improvement Release
This release does not add new APIs, but it does improve the functionality of tcell on Windows, and provides an "undocumented" feature for managing the alternate screen buffer.
- Windows uses VT mode output everywhere except on ConEmu (because VT output mode on ConEmu is borked for colors)
- The
TCELL_VTMODE
environment variable can be set to "enable" or "disable" to force attempting to use (or not) this mode.
- The
- Windows now uses the alternate screen buffer by default, and preserves the original screen content
- Use of the alternate screen can be disabled setting the
TCELL_ALTSCREEN
environment variable to "disable". - If the alternate screen is disabled in that fashion, we will not clear the screen either. This is an experimental way to preserve the output from a tcell application on exit or suspend. Feedback on this would be appreciated.
The specific environment variables listed here are not considered part of the Tcell API, and their presence and meaning may change without notice at any time. Please consider them experimental and let us know whether these are useful or not.
Version 2.7.1 Bug Fix Release
This release fixes a few problems, and also adds a feature that was missing on Windows.
- Fix for disappearing wide (including emoji) characters on Windows (#621)
- Fix for wide characters causing scrolling when on bottom line on UNIX/Linux (#679)
- Fix for PollEvent returning nil on screen Suspend (regression) (#687)
- Fix for AltGr modifiers on Windows, contributed by stk stk@ableton.com
Additionally:
- Support for the termite (defunct) was removed from the built-in terminals. The fallback support by parsing terminfo still works. The termite project is now abandoned and the project advises users to use Alacritty (which is natively supported in tcell.)
- Support for focus event reporting was added for Windows
- The Views API no longer uses deprecated tcell functions internally (#682)
Version 2.7.0 Feature Release
Significant changes in this release:
- Introduced
ColorNone
which can be used in a style to avoid changing the existing foreground or background color. - Refactored the screen logic to provide better code reuse and facilitate extending the Screen API in future releases. (This changes internal APIs only)
Color
grew some methods to report aString()
(color name) orCSS()
(color hex string in CSS style)LockRegion()
andTty
API changes from Tim Culverhouse tim@timculverhouse.com in support of Sixel coexistence. This does not itself provide support for Sixel graphics, but it allows tcell applications to be used with other sixel graphics libraries.- Mouse focus reporting (see
EnableFocus()
,DisableFocus()
, andEventFocus
) courtesy of stk stk@ableton.com (I also added support for focus reporting in the WASM terminal.) Windows console does not report this yet.
The refactoring in particular will enable some further improvements. Also, we added more test cases and coverage. While much of tcell remains uncovered by formal testing, every improvement here is welcome.
I expect to follow up with another release soon -- things I'm hoping for are gpm mouse support for the linux console (oft-requested), refactoring wide character support to fix some long standing bugs, and convenience methods to apply content or style changes to a rectangular region of the screen. In the meantime, I hope you enjoy this release!
Fixes (relative to 2.6.0)
- mouse demo: fix crash when multiple buttons pressed together
- Fix dynamic terminfo when an alias is used (#639) (courtesy of Tim Culverhouse tim@timculverhouse.com)
- Screen.Clear — Flickering on Windows (#647)
- Fix for broken Windows
- Fixes for scrolling and button event handling (courtesy of Matthew Roseman mroseman95@gmail.com)
- Add LookupTerminfo stub for wasm (#617) (courtesy of Remko Tronçon remko@bookwidgets.com)
- Support Xterm modifier keys for dynamic terminfos (courtesy of delthas delthas@dille.cc)
- Fix underlines in Windows console mode (courtesy of bjorndm bjorn.de.meyer@gmail.com)
Contributors
This release had more external contributors than has been usual, for which I'm very grateful. Thank you! (If I forgot to mention anyone, please accept my apologies!)
- Tim Culverhouse tim@timculverhouse.com
- stk stk@ableton.com
- Matthew Roseman mroseman95@gmail.com
- Remko Tronçon remko@bookwidgets.com
- delthas delthas@dille.cc
- bjorndm bjorn.de.meyer@gmail.com
- Junegunn Choi junegunn.c@gmail.com
Version 2.6.0 Feature Release
The main feature introduced in this release is support for web based applications. You can now create applications that run in a browser, and display a simulated terminal emulator in the browser. The initial implementation of this capability was supplied by @Ahoys123 -- thank you! (We made some follow up bug fixes and improvements.)
More detail about this mode can be found in the README-wasm.md file.
Additionally we added support for alacritty-direct, which was contributed by @moson-mo.
This version is only tested on go 1.18 and newer. Older versions of go may work, but might also fail, as our dependencies have started using newer compilation flags.
Version 2.5.4 Bug Fix Release
Version 2.5.4 fixed quite a few things in the 2.5 release chain. Arguably it could also have been a minor release due to some quasi-feature updates. It is anticipated that this will be the last release for 2.5.x.
The next minor release (2.6.0) will probably require updating to at least go 1.17 as we move towards updating imports and adopting additional language features.
Fixes:
- On Windows (and some other platforms) custom TTYs did not work (#580)
- Default to using narrow for ambiguous characters in East Asian locales (#578)
This affected a lot of folks in East Asian locales, and now tcell applications should work by default for them.
If overrides to the RUNEWIDTH_EASTASIAN environment are present they will still be honored. - Fix for intermittent screen flashes (#576)
- Encoding sub package now registers all encodings when imported. (Explicit call to Register is no longer required)
- Tutorial program improved to demonstrate panic handling (thanks to Eric S. Raymond)
- Fix for mouse-wheel/click-drag conflation (#574)
- Hyperlink ID support added (#568) (thanks to Tim Culverhouse)
- Paste support added to views.Application (#552) (thanks to Chris Bradbury)
- WidgetWatcher is concurrency-safe (thanks to Tim Culverhouse)
- Fix for CellView.Size() (#553) (thanks to Chris Bradbury)
- Fix for tput escape sequence errors (#546)
- Horizontal, Vertical are now type Orientation (#543) (thanks to Zaim Bakar)
Version 2.5.3 Bug Fix Release
Version 2.5.3 only fixed some things related to the documentation.
Version 2.5.2 Bug Fix & Feature Release
(Technically this should probably have been a new minor as a new feature was introduced.)
Version 2.5.1 Bug Fix Release
This release fixes #523 - which addresses an unintended behavior when clearing the screen.
The regression was introduced in v2.5.0.