termdash

Terminal based dashboard.

Github星跟蹤圖

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

Termdash is a cross-platform customizable terminal based dashboard.

The feature set is inspired by the
gizak/termui project, which in turn was
inspired by
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.

Public API and status

The public API surface is documented in the
wiki.

Private packages can be identified by the presence of the /internal/
directory in their import path. Stability of the private packages isn't
guaranteed and changes won't be backward compatible.

There might still be breaking changes to the public API, at least until the
project reaches version 1.0.0. Any breaking changes will be published in the
changelog.

Current feature set

  • Full support for terminal window resizing throughout the infrastructure.
  • Customizable layout, widget placement, borders, margins, padding, colors, etc.
  • Dynamic layout changes at runtime.
  • Binary tree and Grid forms of setting up the layout.
  • 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.

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

Please refer to the Termdash wiki for
all documentation and resources.

Implemented Widgets

The Button

Allows users to interact with the application, each button press runs a callback function.
Run the
buttondemo.

go run github.com/mum4k/termdash/widgets/button/buttondemo/buttondemo.go

The TextInput

Allows users to interact with the application by entering, editing and
submitting text data. Run the
textinputdemo.

go run github.com/mum4k/termdash/widgets/textinput/textinputdemo/textinputdemo.go

The Gauge

Displays the progress of an operation. Run the
gaugedemo.

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

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

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

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

The BarChart

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

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

The LineChart

Displays series of values on a line chart, supports zoom triggered by mouse
events. Run the
linechartdemo.

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

The SegmentDisplay

Displays text by simulating a 16-segment display. Run the
segmentdisplaydemo.

go run github.com/mum4k/termdash/widgets/segmentdisplay/segmentdisplaydemo/segmentdisplaydemo.go

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.

Termdash uses this branching model. When you fork the repository, base your changes off the devel branch and the pull request should merge it back to the devel branch. Commits to the master branch are limited to releases, major bug fixes and documentation updates.

Similar projects in Go

Projects using Termdash

  • datadash: Visualize streaming or tabular data inside the terminal.
  • grafterm: Metrics dashboards visualization on the terminal.

Disclaimer

This is not an official Google product.

主要指標

概覽
名稱與所有者mum4k/termdash
主編程語言Go
編程語言Go (語言數: 2)
平台
許可證Apache License 2.0
所有者活动
創建於2018-03-24 12:01:49
推送於2024-09-24 12:45:02
最后一次提交2024-03-10 16:05:56
發布數27
最新版本名稱v0.20.0 (發布於 )
第一版名稱v0.1.0 (發布於 2019-01-24 22:22:49)
用户参与
星數2.8k
關注者數29
派生數142
提交數1.1k
已啟用問題?
問題數163
打開的問題數44
拉請求數173
打開的拉請求數2
關閉的拉請求數34
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?