Package Usage: go: github.com/jesseduffield/gocui
Package gocui allows to create console user interfaces.
Create a new GUI:
Set the layout function:
On each iteration of the GUI's main loop, the "layout function" is executed.
These layout functions can be used to set-up and update the application's main
views, being possible to freely switch between them. Also, it is important to
mention that a main loop iteration is executed on each reported event
(key-press, mouse event, window resize, etc).
GUIs are composed by Views, you can think of it as buffers. Views implement the
io.ReadWriter interface, so you can just write to them if you want to modify
their content. The same is valid for reading.
Create and initialize a view with absolute coordinates:
Views can also be created using relative coordinates:
Configure keybindings:
gocui implements full mouse support that can be enabled with:
Mouse events are handled like any other keybinding:
IMPORTANT: Views can only be created, destroyed or updated in three ways: from
layout functions, from keybinding callbacks or via *Gui.Execute(). The reason
for this is that it allows gocui to be conccurent-safe. So, if you want to
update your GUI from a goroutine, you must use *Gui.Execute(). For example:
By default, gocui provides a basic edition mode. This mode can be extended
and customized creating a new Editor and assigning it to *Gui.Editor:
DefaultEditor can be taken as example to create your own custom Editor:
Colored text:
Views allow to add colored text using ANSI colors. For example:
For more information, see the examples in folder "_examples/".
3 versions
Latest release: almost 9 years ago
35 dependent packages
View more package details: https://packages.ecosystem.code.gouv.fr/registries/proxy.golang.org/packages/github.com/jesseduffield/gocui