Golang terminal dashboard
Go to file
Igor German be3cc6d20d Tree widget 2019-04-19 11:15:13 +03:00
_assets
_examples Tree widget 2019-04-19 11:15:13 +03:00
_scripts
_test v3.0.0 🎉 2019-03-07 03:42:49 -08:00
widgets Tree widget 2019-04-19 11:15:13 +03:00
.gitignore
CHANGELOG.md Fix changelog 2019-03-07 03:42:49 -08:00
LICENSE
Makefile
README.md Tree widget 2019-04-19 11:15:13 +03:00
alignment.go
backend.go mv termbox.go backend.go 2019-03-07 02:12:05 -08:00
block.go Add sync.Locker interface to Drawable interface 2019-03-07 02:14:11 -08:00
buffer.go fix: #226, unicode strings display in paragraph, table and list 2019-02-22 13:08:41 +08:00
canvas.go
doc.go
events.go
go.mod Tree widget 2019-04-19 11:15:13 +03:00
go.sum Tree widget 2019-04-19 11:15:13 +03:00
grid.go Add sync.Locker interface to Drawable interface 2019-03-07 02:14:11 -08:00
render.go Add sync.Locker interface to Drawable interface 2019-03-07 02:14:11 -08:00
style.go Improve/add comments 2019-02-01 22:16:02 -08:00
style_parser.go Rename style parsing functions 2019-02-24 14:56:34 -08:00
symbols.go Tree widget 2019-04-19 11:15:13 +03:00
symbols_other.go
symbols_windows.go
theme.go Tree widget 2019-04-19 11:15:13 +03:00
utils.go refactor: use a []CellWithX instead a chan of CellWithX to make it more sense 2019-02-24 11:29:35 +08:00

README.md

termui

demo cast under osx 10.10; Terminal.app; Menlo Regular 12pt.)

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.

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

If using Go 1.11 modules, it is not necessary to go get termui, since Go will automatically download any imported dependencies. However, do note that you have to include /v3 at the end of the URL and before any sub-packages in the termui import statements as shown in the 'Hello World' example below.

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

Run an example with go run _examples/{example}.go or run each example consecutively with make run-examples.

Documentation

Uses

License

MIT