tcell

Tcell is an alternate terminal package, similar in some ways to termbox, but better in others.

APACHE-2.0 License

Stars
4.5K
Committers
103

Bot releases are hidden (Show)

tcell - Version 2.7.4 Bug Fix Release Latest Release

Published by gdamore 8 months ago

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

tcell - Version 2.7.3 Bug Fix Release

Published by gdamore 8 months ago

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.

tcell - Version 2.7.2 Improvement Release

Published by gdamore 8 months ago

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.
  • 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.

tcell - Version 2.7.1 Bug Fix Release

Published by gdamore 8 months ago

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 [email protected]

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)
tcell - Version 2.7.0 Feature Release

Published by gdamore 10 months ago

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 a String() (color name) or CSS() (color hex string in CSS style)
  • LockRegion() and Tty API changes from Tim Culverhouse [email protected] 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(), and EventFocus) courtesy of stk [email protected] (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 [email protected])
  • Screen.Clear — Flickering on Windows (#647)
  • Fix for broken Windows
  • Fixes for scrolling and button event handling (courtesy of Matthew Roseman [email protected])
  • Add LookupTerminfo stub for wasm (#617) (courtesy of Remko Tronçon [email protected])
  • Support Xterm modifier keys for dynamic terminfos (courtesy of delthas [email protected])
  • Fix underlines in Windows console mode (courtesy of bjorndm [email protected])

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!)

tcell - Version 2.6.0 Feature Release

Published by gdamore over 1 year ago

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.

tcell - Version 2.5.4 Bug Fix Release

Published by gdamore almost 2 years ago

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)
tcell - Version 2.5.3 Bug Fix Release

Published by gdamore almost 2 years ago

Version 2.5.3 only fixed some things related to the documentation.

tcell - Version 2.5.2 Bug Fix & Feature Release

Published by gdamore almost 2 years ago

(Technically this should probably have been a new minor as a new feature was introduced.)

  • Better handling of monochrome terminals
  • Console resizing support (#462) (this new feature allows applications to specify the window size they want.)
  • Minor mouse demo improvements
  • Added support for terminal hyperlinks (#300)
  • Optimize some output (#526)
  • Documentation fixes
tcell - Version 2.5.1 Bug Fix Release

Published by gdamore almost 2 years ago

This release fixes #523 - which addresses an unintended behavior when clearing the screen.
The regression was introduced in v2.5.0.

tcell - Version 2.5.0 Feature Release

Published by gdamore over 2 years ago

Version 2.5.0 is a rollup of a number of bug fixes but also includes some new features:

Features:

  • A new SetCursorStyle() is introduced to allow applications to set the cursor shape (#356)
  • Views API adds mouse support (#494)
  • Some special enhancements for the foot terminal emulator were added (#506)

Bugs Fixed:

  • Bug fix where EventError was getting sent after resuming a Screen (#480)
  • Bug fix for Putty mouse events not working (#477)
  • Screen.Clear() is greatly optimized, reducing the time to redraw the screen (and hopefully removing flashing) (#491)
  • Fixes several bugs for termbox
  • Fix for bug causing cgo to crash on macOS (#492)
  • Fix for mouse tracking being set improperly on exiting (#512)
  • Fix for go 1.18 with macOS (#520)
  • Fix for missing tmux-256color terminal (#521)
  • Fix for incorrect style handling in some circumstances (after screen.Clear() typically) (#509)

Special Message:

This release contains a special message for the people of Russia. Please see the file UKRAINE.md for more information.

tcell - Version 2.4.0 Feature Release

Published by gdamore over 2 years ago

This release introduces a new channel based API for events (#465)

This API is an alternative to PollEvent(), and should make tcell easier to use in multiplexed I/O (select statements).

tcell - Version 2.3.11 Bug Fix Release

Published by gdamore over 2 years ago

This fixes a problem with unpredictable output when tcell is being suspended or shutting down.

tcell - Version 2.3.10 Bug Fix Release

Published by gdamore over 2 years ago

This adds support for a Stdin based Tty implementation, and correctly handles the case where terminal sizes are not set properly.

tcell - Version 2.3.9 Bug Fix Release

Published by gdamore over 2 years ago

This adds support (built-in) for the "foot" terminal emulator.

It also fixes a bug so that colors are reset to the defaults for the terminal when tcell is suspended.

tcell - Version 2.3.8 Bug Fix Release

Published by gdamore over 2 years ago

This only affects folks using the Sun / Solaris / illumos console. It removes the sun-256color special entry, and instead makes sun-color 256 color by default. The illumos console has had 8-bit color support since it's inception.

tcell - Version 2.3.7 Bug Fix Release

Published by gdamore over 2 years ago

This permits a different device node to be used than /dev/tty, which may allow uses of tcell in other context (web based terminal applications for example.)

Note: technically this should probably have been a feature release, but I mistakenly tagged it as a patch.

tcell - Version 2.3.6 Bug Fix Release

Published by gdamore over 2 years ago

Add xterm-direct, which gives 24-bit color.

This is necessary as the curses maintainer has taken a very different approach to expressing 24-bit color for xterm than other terminals.

tcell - Version 2.3.5 Bug Fix Release

Published by gdamore over 2 years ago

This simply adds the sun-256color terminal as a built in. It was inadvertently overlooked.

tcell - Version 2.3.4 Bug Fix Release

Published by gdamore over 2 years ago

This fixes the color handling of the Solaris and illumos consoles.

Note that the terminfo entry for these terminals has bugs.