termui
Go terminal dashboard based on **termbox-go** and inspired by [blessed-contrib](https://github.com/yaronn/blessed-contrib)
About termui
termui
termui is a cross-platform and fully-customizable terminal dashboard and widget library built on top of termbox-go. It is inspired by blessed-contrib and tui-rs and written purely in Go.
Note
Please be aware that due to my fluctuating availability, the frequency of updates to this project may not always follow a consistent schedule. I would like to invite potential maintainers to contribute to this project. If you are interested in becoming a maintainer, please do not hesitate to reach out to me.
Versions
termui is currently compatible with Go 1.15 (as in go.mod) and above (tracking the Debian's oldstable). Please use the version-numbered branch as stable release. The new changes will be pushed to master branch first and then merge to version branch.
Features
- Several premade widgets for common use cases
- Easily create custom widgets
- Position widgets either in a relative grid or with absolute coordinates
- Keyboard, mouse, and terminal resizing events
- Colors and styling
Installation
Go modules
It is not necessary to go get termui, since Go will automatically manage any imported dependencies for you. Do note that you have to include /v3 in the import statements as shown in the 'Hello World' example below.
Dep
Add with dep ensure -add github.com/gizak/termui. With Dep, /v3 should not be included in the import statements.
Hello World
package main
import (
"log"
ui "github.com/gizak/termui/v3"
"github.com/gizak/termui/v3/widgets"
)
func main() {
if err := ui.Init(); err != nil {
log.Fatalf("failed to initialize termui: %v", err)
}
defer ui.Close()
p := widgets.NewParagraph()
p.Text = "Hello World!"
p.SetRect(0, 0, 25, 5)
ui.Render(p)
for e := range ui.PollEvents() {
if e.Type == ui.KeyboardEvent {
break
}
}
}
Widgets
- BarChart
- Canvas (for drawing braille dots)
- Gauge
- Image
- List
- Tree
- Paragraph
- PieChart
- Plot (for scatterplots and linecharts)
- Sparkline
- StackedBarChart
- Table
- Tabs
Run an example with go run _examples/{example}.go or run each example consecutively with make run-examples.
Documentation
Uses
Related Works
License
Frequently Asked Questions
What is termui?
termui is a Command Line library for the Go programming language. Go terminal dashboard based on **termbox-go** and inspired by [blessed-contrib](https://github.com/yaronn/blessed-contrib)
How do I install termui?
Install termui with the Go module system using `go get gizak/termui`. Check the repository for the current installation instructions.
What category does termui belong to?
termui is listed under Command Line, specifically Advanced Console UIs.