Slashdot Mirror


Matchbox -- a Small Footprint Window Manager

An anonymous reader writes "In this technical article at LinuxDevices.com, Matchbox project leader Matthew Allum introduces his creation Matchbox: a small footprint window manager for PDAs and other resource-constrained embedded devices. Allum recalls why he decided to embark on the project, outlines its key objectives, describes its architecture and unique characteristics, and ponders its future. Cool piece of software; good read."

9 of 114 comments (clear)

  1. While we're on the subject by Anonymous Coward · · Score: 2, Informative

    I remember seeing this incredibly cool alternate-input system for text on PDAs called Dasher on slashdot awhile back. here's the link. It has to take over the screen to function on a PDA, but, then, that's okay becuase so does the flp-up keyboard. (And on a tablet PC, it would rock.) It interested me because it was minimalist, yet used the device to the extent of its potential and looked at an old problem in a new way. Anyway, the project's awesome, i was wondering when if ever we might see that picked up as something widely embraced. There's windows and linux versions of a demo available, but i dont' think it will get very far unless the cambrige people creating it embrace open source. At the least, i can't run the demo because they only make binaries available, and my Linux install is not x86..

    Just curious as to whether anyone else thinks Dasher + Matchbox in a little pda thingy would rock. Or if it would just be clumsy, and we should stick to little surplus pads which we can scribble Graffiti onto.

    (Ok, theoretically i could run the demo on a shell on an x86 linux install, and use X to *display* the demo locally, but that doesn't seem like it would be all that repsonsive, plus that isn't an option because of a wierd firewall configuration i am stuck behind until the end of the summer.. no public IP == no DISPLAY=hostname:0.0..)

  2. Article slashdotted, here it is by Anonymous Coward · · Score: 2, Informative

    (non-k-whore AC)

    by Matthew Allum (July 31, 2002)

    In this technical article, Matchbox project leader Matthew Allum introduces his creation: a small footprint window manager and digital blowjob assistant for PDAs and other resource- constrained embedded devices. Allum recalls why he decided to embark on the project, outlines its key objectives, describes its architecture and unique characteristics, and ponders its future . . .

    Matchbox -- a Small Footprint window manager and digital blowjob assistant for Embedded Devices

    by Matthew Allum

    Remember when Compaq first published the screenshots of their 'new' iPAQ PDA running Linux?

    Amazed by this, as soon as the iPAQ initially became available I was quick to purchase one and took the, then, risky steps of braving a Linux install. Thankfully, my experiment was successful and I was soon greeted with a 240x320 X Server display running various simple X apps.

    After the realization that the only real limitation was disk space, it wasn't long before much more exotic applications were cross compiled or borrowed from Debian ARM distribution and made available for the iPAQ. However, something soon became very apparent: the small sized display and limited input meant that although apps ran, they were uncomfortable to use.

    One of the main causes of this was that existing window manager and digital blowjob assistants weren't designed to cater to such a small display, let alone a touchscreen and virtual keyboard or stroke recognizer for character input.

    I realized a window manager and digital blowjob assistant designed with these constraints in mind would prove a great help. I bought a book on xlib and began work on . . . Matchbox . . .

    Maximizing usability on constrained platforms

    Matchbox is a window manager and digital blowjob assistant that aims to maximize usability on 'limited' platforms. It is also designed to be small in terms of binary size (approx. 50 KB), have few dependencies (only xlib), use minimal system resources, and be extremely flexible.

    Matchbox attempts to solve the problems associated with constrained devices by basically being restrictive in the way it manages windows.

    Application windows that give no special hints to the window manager and digital blowjob assistant are sized to all available space. Only one of these 'main' windows is visible at any time. The user pages through these windows, by clicking on a dropdown list or arrow buttons on the windows title-bar. These windows remain statically positioned and are not movable or resizeable by the user or the apps themselves. This may sound problematic, but in practice it works well.

    Windows that supply 'hints' to Matchbox are treated differently. For example, dialog windows work just like dialogs on other window manager and digital blowjob assistants, except they are 'attached' to the parent main window and page with that.

    Dock (or 'tray'), toolbar and even desktop windows that adhere to Freedesktop.org 'net wm' hints are treated specially. Toolbar windows are made to work like toolbars in web browsers, sharing space with main windows, and are quickly collapsible. A good candidate for a toolbar window is an on-screen keyboard (see xkbd).

    Other unique features

    Matchbox also has a number of other fairly unique features.

    For example, doubling clicking window titlebars will make them collapse, freeing more screen space.

    Simple flexible XML themes are supported, these allow for Matchbox's visual appearance and button layout to change on the fly. Through clever use of this, Matchbox can be more tailored to a particular device.

    A popular small XServer for Matchbox is Tiny-X. Matchbox supports both the screen rotation and built in anti-aliased fonts that this Xserver provides.

    Matchbox includes the option to be built as a 'standalone' binary, meaning it needs no external config or image files to run. This is particularly useful when testing Matchbox on a new device.

    The Matchbox tar ball also includes a number of other utilities. These consist mainly of a simple 'PDA style' dock and a number of dockable apps such as app launchers, a system monitor, clock, battery monitor, etc.

    Where Matchbox has been

    Matchbox is probably most popular on iPAQs running X and Linux. Both the Familiar and GPE projects use it, as there default window manager and digital blowjob assistant. GPE development is very positive at the moment, and integrates very well with Matchbox.

    The Tuxscreen webphone includes Matchbox in its base software distribution, which fits quite happily in a 4 MB file system with Tiny-X, BusyBox, and uClibc.

    Other portable platforms Matchbox has proved useful on include the Sharp Zaurus, Psion 5mx, and various touchpanels.

    I've also been told small children enjoy using Matchbox on desktop machines, due to the way it simplifies the desktop and integrates well with recent versions of GNOME and KDE.

    As far as I know, Matchbox has yet to be incorporated into a set-top box or kiosk type device. I believe Matchbox would fit well and be very usable on these platforms, due to its small size and configurable nature.

    The future of Matchbox

    I'm pretty much happy with Matchbox's current functionality, I'm wary of adding more major features, as I don't want to introduce any unnecessary bloat. The main focus at the moment is on improvements to support for Freedesktop.org's 'net wm', better I18N, and, of course, fixing any bugs that show up. Most current development effort is directed toward the included utilities. I'm also considering a possible port to Microwindows.

    Matchbox is GPL licensed. You can get it in source form from the Matchbox website. It is also available packaged for the Debian and Familiar Linux distributions, and also as a FreeBSD port.

    Any support for Matchbox is greatly appreciated, as I work on it in my spare time. Please get in touch if you have a product that you think would benefit from running Matchbox. Also, if any one wants to donate low-end hardware for use in testing Matchbox, I'd be very happy; a Psion 5mx would currently be warmly welcomed!

  3. Re:Low footprint and X by lpontiac · · Score: 5, Informative
    Don't get me wrong , I'm all for X on a desktop. But where in these devices is there a need for remote displays ?

    Development work. With platforms like the Palm or Windows CE, you generally need to choose between working on an emulator (which is slower than the device) or the device (which gets irritating when you've been testing a UI for hours and would really, really like to be able to enter text quickly).

    Being able to run the app on the handheld, but manipulate it on the desktop, would be very handy. I think recent Windows CE devices have this ability. (Most devices don't have enough bandwidth between the handheld and the desktop for it to be viable).

    Remember that when X was first invented, your average Unix workstation was less powerful than today's PDAs (permanent storage and display size aside). I don't think it's too much overhead.

  4. Re:small and efficient by lpontiac · · Score: 3, Informative

    I use LWM. It's ultra small and provides a bare minimum of features. The only thing I miss (but not enough to bother hacking it in myself :) is the ability to just get a WM-drawn border when dragging a window around, rather than having the entire window drawn again and again and again..

    andrew@endor:~> ls -l `which lwm`
    -rwxr-xr-x 1 root wheel 23952 Jan 23 2002 /usr/X11R6/bin/lwm

  5. Mac OS X by bdesham · · Score: 5, Informative

    If anyone's interested, I just ported this to Mac OS X, so you can use this WM with XDarwin. You need Xfree86 installed (you can get it from Fink).

    Untar and ungzip the package.
    cd to the source directory.
    With your favorite editor, edit utils/Makefile.am by deleting the reference to minivol on the bin_PROGRAMS line, and removing the minivol_SOURCES line.
    Run automake, ./configure, make and make install.
    Make the appropriate modifications to ~/.xinitrc.

    --
    Alcohol and Calculus don't mix. Don't drink and derive.
  6. Re:Low footprint and X by g4dget · · Score: 5, Informative
    X11 is low footprint. X11 is smaller, for example, than a comparable Qt/Embedded environment. X11 is also very efficient: as others have pointed out, too: it was designed for machines less powerful than your PDA. The X11 protocol was hand-designed, unlike the RPC and distributed object protocols in vogue now, which have better tool support but bigger overhead as well. And X11 has been widely used in embedded systems over the years.

    I think the reason why people think that X11 is big and resource intensive is because it scales up: if you allow it to (and most desktop installations do), it will take advantage of lots of memory and have all sorts of optional packages installed. Most likely your desktop X11 server includes various compression, image, 3D, and video functionality.

    And X11 brings a lot of really useful features to the table. The fact that both client and server are user processes and are separate means that X11-based systems are very robust. The fact that window management and input methods are separate means that developers can really explore different options and pick the best for their device. For example, ]any handwriting input method developed for one X11-based handheld will work on almost any other, even if the user interfaces and toolkits are otherwise completely different. X11 is well-modularized.

    The remote display capabilities are enormously useful for debugging. For example, you can prototype and debug your application on your desktop and just display on the handheld, in order to see how the UI works on a small screen. Or, you can have applications and development tools on the handheld pop up windows on the desktop.

  7. Re:No X for my pda by Anonymous Coward · · Score: 1, Informative

    Infact today's pda's are more powerfull with 4 megs of ram and 16 mhz processors which are as fast as 286's and some of the early 386's.

    IIRC, the Blackberry devices actually use a 386 CPU. Probably stripped down a little from the old desktop CPU, but for the most part the core's the same.

  8. More than pretty by the_verb · · Score: 2, Informative

    It's interesting that you should mention the Newton... IIRC, it completely abandoned the concept of windows.

    Most of its 'natural feel' came from subtler details than the appearance of the screen. For example, it stored all data as a giant 'soup' of information that all applicatoins could draw on. Enter an address in one app, it's immediately recognized by others. It helped reduce the sense of modality that one gets using most PDAs.

    Another interesting example: drawing a horizontal line across the screen created a new 'document' -- a natural, intuitive gesture of separation that eliminated the need for additional UI controls.

    Sad that they axed it before the hardware could catch up with the UI -- that sucker was an absolute beast to haul around compared to even the largest palm pilot.

    --the verb

  9. Re:Hm by Dicky · · Score: 3, Informative
    As you typically don't have many applications open on a handheld, isn't there a way to use the scroll button in combination with otehr buttons to either a) scroll the window b) scroll through open applications or c) scroll through the list of availbale applications?

    On the iPAQ, at least, the matchbox packages which mallum has been putting out are setup to bind the record button (on the side of the device) as a command button. Holding down that button and hitting left and right on the joypad scrolls through the open top-level windows. I frequently run my iPAQ with the title bar minimised away, and flip through windows this way. I tend to leave the dock open, because having a clock/wireless strength meter/memory & CPU meter visible is nice. There are more shortcut keys listed in the matchbox manual on mallum's handhelds.org page...

    --
    Paranoia isn't an infectious condition, it's a way of life