Home
PicoGUI is an Open Source project to create a new GUI architecture designed to be usable on systems ranging from embedded to desktops.
Current status
As you can see here Micah (the original author of PicoGUI) is disinterested with the project. This means development is all but halted. The only other developer (Lalo Martins, who wrote this section of the page) is busy with other stuff more directly related to the acquisition of food and maintenance of roof.
However, there are still people who are interested in seeing continued development and who believes in PicoGUI - Lalo for one thinks PicoGUI is one of the best things in its category, and plans to continue making releases as necessary.
In short, what the project needs to continue to exist is more developers. Micah and Lalo are available to review and merge patches and even to grant svn access to the codebase.
What it is and isn't
It is not a widget toolkit or a window server, though it provides features similar to both. In the X Window System, for example, PicoGUI would be roughly equivalent to:
- The X server
- A widget set, like GTK or Qt
- A window manager
- A widget layout system like Glade
So why go to all this trouble if the same functionality can be had using existing software?
- Scalability
- PicoGUI applications can very easily be moved between a wide variety of platforms.
- Consistency
- PicoGUI makes it easy for developers to separate presentation, layout, and content. This makes it easy to change the look and feel of an app, and for all apps to be consistent with each other.
- Creativity
- PicoGUI is a chance to completely rethink the design behind a GUI system and try new things.
- Modularity
- PicoGUI is designed to be tweaked and configured at compile-time to create a system that's right for any application. You can create large feature-packed binaries for the desktop, or simpler configurations for a wide range of embedded systems.
Instead of compatibility with existing software, PicoGUI is focusing on an innovative architecture especially well suited to handheld computers, PDAs, cellphones, and other embedded systems. It is client-server, but almost everything is implemented in the server, including widgets and themes. The theme system and flexible video architecture allow it to run on a wide variety of displays, from large desktop monitors to text-only LCDs and everything inbetween.
The project has been underway since early 2000 - It was originally designed for very low-end embedded systems, but has expanded to run on many architectures including the TuxScreen, VTech Helio, Agenda VR3, Psion, uCsimm, desktops, in-game UI systems, and a few commercial products in development.
There is still much to be done. PicoGUI needs more applications, mainly a PIM. We could use programmers to write applications, port PicoGUI to new architectures or programming languages, and work on PicoGUI itself. We're also in need of documentation authors, and artists (preferably with a little programming experience) to create new themes for PicoGUI.
Browse around (specially the wiki) for more information. The "contacts" sidebar has links for getting in touch with developers.
Quick info checklist
- PicoGUI isn't X, or X compatible. It's a completely new GUI framework. It's design goal is not compatibility with other GUIs, but to explore a unique architecture that especially benefits handheld computers and other embedded systems
- PicoGUI is very scalable. It will run on a 32bpp 1024x768 display, your average handheld, even something with a 16mhz Dragonball CPU (the same used in Palm handhelds). The video drivers are flexible enough PicoGUI has no trouble running over ncurses or a text LCD.
- PicoGUI is client-server like X, but that's about where the similarity stops. PicoGUI implements as much as possible on the server side including widgets, themes, and text editing.
- PicoGUI's theme engine isn't there just to look pretty, it's there to enforce a separation of content and presentation. This way the application only specifies high-level commands, and it's completely up to the theme to specify which pixel goes where. This allows the same application binary to run on a true color display, 160x16 grayscale LCD, or an ASCII device
- PicoGUI's video subsystem is flexible. It can run under X, but it runs just as well on the linux framebuffer or on bare hardware.
- PicoGUI is small. How small depends on the architecture and configuration, but it's typically a few hundred kilobytes.
- PicoGUI is primarily developed under linux, but should be portable to other platforms