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

David Bolen db3l.net at gmail.com
Sat Nov 3 21:55:06 CET 2007

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.  Depending on the higher level GUI functionality you
require 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.

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

  * 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.

-- David

More information about the Python-list mailing list