github.com/jroimartin/gocui (go): Package gocui allows to create console user interfaces.  Create a new GUI:  Set GUI managers:  Managers are in charge of GUI's layout and can be used to build widgets. On each iteration of the GUI's main loop, the Layout function of each configured manager is executed. Managers are used to set-up and update the application's main views, being possible to freely change them during execution. 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 the Layout function within managers, from keybinding callbacks or via *Gui.Update(). The reason for this is that it allows gocui to be concurrent-safe. So, if you want to update your GUI from a goroutine, you must use *Gui.Update(). 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 *View.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/".
Keywords: cui|go|gocui|gui