Golang terminal dashboard
Go to file
Caleb Bassi eaec27d1df Add sync.Locker interface to Drawable interface
Many widget implementations will want to update asynchronously, so now termui performs locks a widget when drawing. Users should call `Lock()` on their widgets when performing an asynchronous update.
2019-03-07 02:14:11 -08:00
_assets Refactor README and remove widget screenshots 2019-01-23 23:09:50 -08:00
_examples Change list widget scroll method names 2019-03-01 14:04:59 -08:00
_scripts The Great Rewrite 2019-01-23 20:16:13 -08:00
_test Fix termbox event conversion 2019-01-24 05:23:30 -08:00
widgets Change list widget scroll method names 2019-03-01 14:04:59 -08:00
.gitignore The Great Rewrite 2019-01-23 20:16:13 -08:00
alignment.go The Great Rewrite 2019-01-23 20:16:13 -08:00
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 Refactor canvas into seperate repo 2019-01-26 05:19:45 -08:00
CHANGELOG.md Add sync.Locker interface to Drawable interface 2019-03-07 02:14:11 -08:00
doc.go Update godoc 2018-11-28 20:38:11 -08:00
events.go Refactor events.go 2019-01-25 03:41:35 -08:00
go.mod Add scrolling to List widget 2019-01-26 22:32:08 -08:00
go.sum Add scrolling to List widget 2019-01-26 22:32:08 -08:00
grid.go Add sync.Locker interface to Drawable interface 2019-03-07 02:14:11 -08:00
LICENSE Initial commit 2015-02-03 09:09:27 -05:00
Makefile The Great Rewrite 2019-01-23 20:16:13 -08:00
README.md Update readme 2019-02-24 14:55:58 -08:00
render.go Add sync.Locker interface to Drawable interface 2019-03-07 02:14:11 -08:00
style_parser.go Rename style parsing functions 2019-02-24 14:56:34 -08:00
style.go Improve/add comments 2019-02-01 22:16:02 -08:00
symbols_other.go The Great Rewrite 2019-01-23 20:16:13 -08:00
symbols_windows.go The Great Rewrite 2019-01-23 20:16:13 -08:00
symbols.go Add scrolling to List widget 2019-01-26 22:32:08 -08:00
theme.go Improve/add comments 2019-02-01 22:16:02 -08: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

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

  • Built in widget implementations for common use cases
  • Utilities to create custom widgets
  • Relative widget positioning using a grid layout
  • Event system for keyboard, mouse and terminal resizing events
  • Colors and styling

Installation

go get -u github.com/gizak/termui

Hello World

package main

import (
	"log"

	ui "github.com/gizak/termui"
	"github.com/gizak/termui/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