Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
S Tui | 3,267 | 1 | 4 months ago | 43 | July 24, 2021 | 46 | gpl-2.0 | Python | ||
Terminal-based CPU stress and monitoring utility | ||||||||||
Gowid | 659 | 2 | 5 | 3 months ago | 21 | July 09, 2022 | 6 | mit | Go | |
Compositional widgets for terminal user interfaces, written in Go, inspired by urwid. | ||||||||||
Picotui | 656 | 5 | 3 | a year ago | 17 | July 12, 2021 | 24 | mit | Python | |
Lightweight, pure-Python Text User Interface (TUI) widget toolkit with minimal dependencies. Dedicated to the Pycopy project. | ||||||||||
Alot | 649 | 2 | a month ago | 7 | February 27, 2018 | 231 | gpl-3.0 | Python | ||
Terminal-based Mail User Agent | ||||||||||
Stig | 504 | 3 days ago | 28 | April 13, 2022 | 43 | gpl-3.0 | Python | |||
TUI and CLI for the BitTorrent client Transmission | ||||||||||
Zulip Terminal | 493 | 2 days ago | 9 | May 21, 2022 | 391 | apache-2.0 | Python | |||
Official Zulip terminal client. | ||||||||||
Ytermplayer | 220 | 3 years ago | 6 | July 06, 2019 | 3 | gpl-3.0 | Python | |||
Stream youtube playlists as audio on linux terminal | ||||||||||
Twchat | 64 | 2 years ago | 13 | November 20, 2017 | 2 | mit | Python | |||
An Geek style terminal based WeChat client | ||||||||||
Rtscli | 47 | 3 years ago | 7 | October 16, 2019 | 4 | Python | ||||
Python CLI Stocks Ticker + Portfolio Tracker | ||||||||||
Scum | 39 | 1 | 4 years ago | 23 | December 17, 2016 | 1 | gpl-3.0 | Python | ||
A multi-tab, terminal-based text editor |
Gowid provides widgets and a framework for making terminal user interfaces. It's written in Go and inspired by urwid.
Widgets out-of-the-box include:
All widgets support interaction with the mouse when the terminal allows.
Gowid is built on top of the fantastic tcell package.
There are many alternatives to gowid - see Similar Projects
The most developed gowid application is currently termshark, a terminal UI for tshark.
go get github.com/gcla/gowid/...
Make sure $GOPATH/bin
is in your PATH (or ~/go/bin
if GOPATH
isn't set), then tab complete "gowid-" e.g.
gowid-fib
Here is a port of urwid's palette example:
Here is urwid's graph example:
And urwid's fibonacci example:
A demonstration of gowid's terminal widget, a port of urwid's terminal widget:
Finally, here is an animation of termshark in action:
This example is an attempt to mimic urwid's "Hello World" example.
package main
import (
"github.com/gcla/gowid"
"github.com/gcla/gowid/widgets/divider"
"github.com/gcla/gowid/widgets/pile"
"github.com/gcla/gowid/widgets/styled"
"github.com/gcla/gowid/widgets/text"
"github.com/gcla/gowid/widgets/vpadding"
)
//======================================================================
func main() {
palette := gowid.Palette{
"banner": gowid.MakePaletteEntry(gowid.ColorWhite, gowid.MakeRGBColor("#60d")),
"streak": gowid.MakePaletteEntry(gowid.ColorNone, gowid.MakeRGBColor("#60a")),
"inside": gowid.MakePaletteEntry(gowid.ColorNone, gowid.MakeRGBColor("#808")),
"outside": gowid.MakePaletteEntry(gowid.ColorNone, gowid.MakeRGBColor("#a06")),
"bg": gowid.MakePaletteEntry(gowid.ColorNone, gowid.MakeRGBColor("#d06")),
}
div := divider.NewBlank()
outside := styled.New(div, gowid.MakePaletteRef("outside"))
inside := styled.New(div, gowid.MakePaletteRef("inside"))
helloworld := styled.New(
text.NewFromContentExt(
text.NewContent([]text.ContentSegment{
text.StyledContent("Hello World", gowid.MakePaletteRef("banner")),
}),
text.Options{
Align: gowid.HAlignMiddle{},
},
),
gowid.MakePaletteRef("streak"),
)
f := gowid.RenderFlow{}
view := styled.New(
vpadding.New(
pile.New([]gowid.IContainerWidget{
&gowid.ContainerWidget{IWidget: outside, D: f},
&gowid.ContainerWidget{IWidget: inside, D: f},
&gowid.ContainerWidget{IWidget: helloworld, D: f},
&gowid.ContainerWidget{IWidget: inside, D: f},
&gowid.ContainerWidget{IWidget: outside, D: f},
}),
gowid.VAlignMiddle{},
f),
gowid.MakePaletteRef("bg"),
)
app, _ := gowid.NewApp(gowid.AppArgs{
View: view,
Palette: &palette,
})
app.SimpleMainLoop()
}
Running the example above displays this:
Gowid is late to the TUI party. There are many options from which to choose - please read https://appliedgo.net/tui/ for a nice summary for the Go language. Here is a selection:
Gowid depends on these great open-source packages: