AUIMD - Aggregated User Interface for Mobile Devices



AUIMD is a graphical environment for mobile devices, aggregating already existing components.

In itself AUIMD brings few added value : its main feature is to gather dissociated but proven components, in a single application. The main goal of AUIMD is to assemble some already existing existing softwares, in order to provide a user friendly environment. Currently MPlayer, Matchbox Keyboard, mrxvt are simply integrated through XEmbed. AUIMD also acts as a sort of fullscreen window manager so that regular X11 applications can be used easily.

Additionnaly AUIMD provides a very basic ground for easy and fast building of small applications (called widgets). See the widget tutorial for how to create widgets.

Other components can interact with AUIMD through a DBus interface. For instance a new widget can be started through the following method call :

dbus-send --dest=net.pierrox.auimd /Desktop net.pierrox.auimd.Desktop.StartWidget string:"WebBrowser" array:string:""

AUIMD currently uses APIs for phone calls, and other things such as battery level reading.

AUIMD is primarily built using Python/Qt4. It runs on a GNU/Linux platform providing X11 display, with or without window manager (VGA preferred, but support for QVGA is ongoing). AUIMD has been tested on ARM based devices with at least 400MHz CPU and 64MB RAM (Eten G500 and HTC Universal).

Status and features

AUIMD is currently on hold. I do not actively work on it. I do however provide support when needed, and I do not exclude to come back on it.

Don't expect from AUIMD a completely functional and polished environment. It has some rough edges and is more a proof of concept than a complete environment. That said it is quite usable and provides the following features :



AUIMD needs at last :

Additionaly AUIMD benefits from these packages :

For Debian like distributions the prerequisites can be installed with :

apt-get install python-qt4 python-qt4-dbus x11-xserver-utils mrxvt mplayer matchbox-keyboard xserver-xephyr python-xlib python-pysqlite2

A debian like distribution is not required in any way, but the armel Debian port is a recommended choice for setting up a first environment for ARM based devices.

In order to install an run AUIMD, simply extract the source archive and execute :

tar xfz auimd-<version>.tar.gz
cd auimd-<version>

FreeRunner Debian root filesystem

For FreeRunner owners, a ready to use root filesystem is available, it is based on Lenny and only includes the minimal set of packages needed to run AUIMD. This root filesystem does not fit on the flash (~362M), so it must be copied on the microSD card. The root filesystem MUST be used with the associated kernel, both can be found below :

Be patient while the GTA02 is booting, it will take 3 minutes to reach the home screen. The root password is "root" and the usb device is configured as ethernet gadget IP Instructions on building the root filesystem can be found in this HOWTO.


AUIMD can be launched in its own window on a desktop PC, or fullscreen as the main application on a handheld device. Since AUIMD is platform independant, it is convenient to create and test applications on a PC and then be confident in the fact that it will run (more or less) the same way on the device.

AUIMD - Aggregated User Interface for Mobile Devices.  Usage:

    ./ [options]


  -device                      Set the hardware type (default='dummy',
                               show available='list').
  -fullscreen                  Use the whole screen and a frameless
                               window (default=no).
  -no-cursor                   Hide the cursor (default=no).
  -embed                       Embed into an existing window.
  -help                        Print this message.

Some other Qt/X11 usefull options:

  -display                     X11 display to use, default : $DISPLAY
  -geometry                    Window geometry, overriden by -fullscreen



More screenshots here

Home (240x320 screen)

Main menu (240x320 screen)

Phone - dialer (240x320 screen)

mrxvt, with matchbox-keyboard (240x320 screen)

Notes editor (640x480 screen)

Browser (640x480 screen)

Design choices

Main architecture design choices are :

  • use a script programing language (high level, supposedly better productivity, mostly architecture independant)
  • use X11, for its wide range of features and available applications
  • reuse existing components when possible, most notably using XEmbed
  • monolithic, keep the whole GUI in one processus :
    • reduce scripted application startup time
    • share and save script engine resources
    • that does not mean that no other processes are running
  • keep complexity as low as possible


Released unser the GPLv2. See

All icons come from the Crystal SVG icons from KDE 3.5.10.


Contributers are welcome ! If you feel interested in participating to the project : pierrox (at) pierrox dot net.