SystemConfig/TextUI

= Text UI =

Rational
Why a Text UI


 * lots of servers don't have X11 installed
 * serial console
 * can't drop support (where there is one)

Requirements

 * Python or Python bindings
 * Unicode/UTF-8 support
 * similar look and feel to the current (snack) UIs
 * Managed Widgets
 * Must cope with changing screen size (xterm)
 * Must be simple to program
 * must match paradigms found in the Gtk UIs

Urwid
We've looked at Urwid which


 * has Unicode/UTF-8 support
 * copes with changing screen size

Problems

 * Constructor driven API makes dynamic interfaces difficult
 * Some Callbacks are missing
 * API is awkward and difficult to use
 * Constructor driven
 * Not all widgets fit into each other - needs a lot of care by the programmer
 * Spacing is done in separate widgets (widget bloat)
 * Lots of parameters needed to build widgets
 * No sensitive default - because widgets are not smart enough to know
 * Widgets are only partially managed
 * Missing widget attributes
 * sensitive
 * visible (set_no_show_all?)
 * No theming - only per widget colors (recursive)
 * Some important widgets are missing (see below)
 * Internal workflow is -- interesting

Widgets needed

 * --- Not needed
 * XXX missing/needs work

Other Text UIs
Other stuff we looked at


 * Turbo Vision
 * No Python bindings
 * No unicode
 * Not managed
 * Snack
 * Not Unicode capable
 * Not managed
 * Not much