Low-overhead GUI toolkit for Linux w/o X11?

Grant Edwards grante at visi.com
Sun Nov 4 00:06:39 CET 2007

On 2007-11-03, David Bolen <db3l.net at gmail.com> wrote:
> Grant Edwards <grante at visi.com> writes:
>> I'm looking for GUI toolkits that work with directly with the
>> Linux frambuffer (no X11).  It's an embedded device with
>> limited resources, and getting X out of the picture would be a
>> big plus.
> Sounds like a reasonably modern "embedded" system since traditionally
> neither X (nor Python) would likely have even been plausible in such
> environments.

Yes, it's "modern" enough to run Linux/X11 -- horsepower-wise
it's sort of in the PDA class of devices.  wxWidgets has been
tried, but it's pretty sluggish. Hence the search for something
a littler lighter weight.  Using Python is probably going to be
a little bit of a stretch, but using open-source libraries and
something like Python for the application langauge seems to be
an important part of the business model.

> Depending on the higher level GUI functionality you require

That's still a bit up in the air.  Routines to render text
would be nice, as would sprite graphics.  I don't think text
entry or much in the way of windowing is required.

> and how tight the resources really are, you might want to
> consider investigating pure drawing libraries and then
> implement any missing GUI elements (widgets and mouse
> handling) you need yourself.

There is no mouse.  I'm not sure how many "widgets" are
required.  Probably not very many.

> When I was looking for an embedded graphics library for a prior
> platform (ELAN 486, 2MB flash, 6MB RAM) under DOS, we took a look at
> these:
>   * GRX (http://grx.gnu.de/index.html)
>   * Allegro (http://alleg.sourceforge.net/)
> We ended up using GRX, primarily because it was the simplest
> to develop a custom video driver for to match our platform,
> along with having a simpler core.  We were under DOS but also
> used it with a later generation of the platform under Linux.
> Both libraries support operation over the framebuffer in
> Linux.  Our app was in C++ (Python wasn't an option), and we
> implemented our own buttons and text widgets (in our case we
> never needed any scrolling widgets).
> There aren't any Python wrappers for GRX, but the library is
> straight C which should be easy to wrap (manually or with
> something like SWIG). No built-in widget support at all (some
> sample button processing code in a demo module), but easy
> enough to implement your own if your needs are modest.
> Although we didn't end up using it, Allegro is more fully
> featured (actually with some non-GUI cruft too since it
> targets games), and also appears to have two work-in-progress
> Python bindings.  Some basic widget support in dialog
> processing routines.

Thanks for the pointers.


More information about the Python-list mailing list