Go to file
Jakub Sobon 0f31f25eaa
Adding licences.
2019-02-04 00:49:05 -05:00
align Alignment now supports full-width runes. 2018-05-27 19:28:09 +01:00
area Creating a common numbers.Abs function for code reuse. 2019-01-27 22:32:06 -05:00
attrrange Adding licences. 2019-02-04 00:49:05 -05:00
canvas Bugfix - correctly determine area on a braille canvas. 2019-01-20 15:44:43 -05:00
cell Support for 256 colors. 2019-01-13 21:53:26 -05:00
container Fixing racy behavior between Options and Draw. 2019-01-26 23:58:38 -05:00
doc Self-review fixes. 2019-01-27 00:07:00 -05:00
draw Rewriting the prototype code for readability. 2019-02-03 23:21:32 -05:00
eventqueue Fixed an error in the test 2019-01-23 08:45:08 +01:00
images Adding Donut to termdashdemo. 2019-01-21 17:53:33 -05:00
keyboard Adding licences and a script to automate the same. 2018-04-14 23:06:57 +01:00
mouse Fixing lint errors. 2018-05-11 16:32:37 +01:00
numbers Creating a common numbers.Abs function for code reuse. 2019-01-27 22:32:06 -05:00
scripts The WRITE argument is second, not third. 2018-07-01 17:32:23 -04:00
termdashdemo Removed another one 2019-01-22 23:28:01 +01:00
terminal Include newline when printing cell differences. 2019-01-20 16:21:16 -05:00
terminalapi Two typos s/called/caller 2019-01-19 10:47:08 -05:00
trig Adding functions that calculate angles. 2019-01-21 00:51:05 -05:00
widgetapi Self-review fixes. 2019-01-27 00:07:00 -05:00
widgets Skeleton for the segment display. 2019-02-03 23:57:32 -05:00
.gitignore Renaming display to terminal. 2018-03-26 16:31:20 +01:00
.travis.yml Adding go 1.11.x as test target and dropping 1.8.x. 2019-01-13 22:04:38 -05:00
CHANGELOG.md Updating CHANGELOG. 2019-01-27 00:00:30 -05:00
CONTRIBUTING.md Adding a CONTRIBUTING.md file. 2018-04-14 23:02:18 +01:00
LICENSE Initial commit 2018-03-24 12:01:49 +00:00
README.md Merge pull request #89 from mum4k/changelog 2019-01-24 22:35:12 -05:00
termdash.go Don't return from Run() while the goroutine is still running. 2018-07-02 23:05:38 -04:00
termdash_test.go Increasing the time allowed for Run to finish its operation. 2019-01-26 22:53:03 -05:00

README.md

Doc Status Build Status Coverage Status Go Report Card License Mentioned in Awesome Go

termdash

termdashdemo

This project implements a cross-platform customizable terminal based dashboard. The feature set is inspired by the gizak/termui project, which in turn was inspired by a javascript based yaronn/blessed-contrib.

This rewrite focuses on code readability, maintainability and testability, see the design goals. It aims to achieve the following requirements. See the high-level design for more details.

Current feature set

  • Full support for terminal window resizing throughout the infrastructure.
  • Customizable layout, widget placement, borders, colors, etc.
  • Focusable containers and widgets.
  • Processing of keyboard and mouse events.
  • Periodic and event driven screen redraw.
  • A library of widgets, see below.
  • UTF-8 for all text elements.
  • Drawing primitives (Go functions) for widget development with character and sub-character resolution.

See the changelog for more details.

Installation

To install this library, run the following:

go get -u github.com/mum4k/termdash

Usage

The usage of most of these elements is demonstrated in termdashdemo.go. To execute the demo:

go run github.com/mum4k/termdash/termdashdemo/termdashdemo.go

Documentation

Code documentation can be viewed in godoc.

Project documentation is available in the doc directory.

Implemented Widgets

The Gauge

Displays the progress of an operation. Run the gaugedemo.

go run github.com/mum4k/termdash/widgets/gauge/gaugedemo/gaugedemo.go

gaugedemo

The Donut

Visualizes progress of an operation as a partial or a complete donut. Run the donutdemo.

go run github.com/mum4k/termdash/widgets/donut/donutdemo/donutdemo.go

donutdemo

The Text

Displays text content, supports trimming and scrolling of content. Run the textdemo.

go run github.com/mum4k/termdash/widgets/text/textdemo/textdemo.go

textdemo

The SparkLine

Draws a graph showing a series of values as vertical bars. The bars can have sub-cell height. Run the sparklinedemo.

go run github.com/mum4k/termdash/widgets/sparkline/sparklinedemo/sparklinedemo.go

sparklinedemo

The BarChart

Displays multiple bars showing relative ratios of values. Run the barchartdemo.

go run github.com/mum4k/termdash/widgets/barchart/barchartdemo/barchartdemo.go

barchartdemo

The LineChart

Displays series of values on a line chart. Run the linechartdemo.

go run github.com/mum4k/termdash/widgets/linechart/linechartdemo/linechartdemo.go

linechartdemo

Contributing

If you are willing to contribute, improve the infrastructure or develop a widget, first of all Thank You! Your help is appreciated.

Please see the CONTRIBUTING.md file for guidelines related to the Google's CLA, and code review requirements.

As stated above the primary goal of this project is to develop readable, well designed code, the functionality and efficiency come second. This is achieved through detailed code reviews, design discussions and following of the design guidelines. Please familiarize yourself with these before contributing.

If you're developing a new widget, please see the widget development section.

Disclaimer

This is not an official Google product.