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

21 of 114 comments (clear)

  1. Hm by zapfie · · Score: 5, Interesting

    With the extremely limited real estate on small devices, why use standard window controls (title bar, close box, etc.) which take up space? I would think it would make more sense to have an application take up the whole screen, and provide some space-friendly way to switch between them.

    --
    slashdot!=valid HTML
    1. Re:Hm by pediddle · · Score: 3, Insightful

      Although Matchbox "wastes" real estate with titlebars, it uses them very smartly. As you can see from the screenshot in the article, the titlebars double as taskbars. If I ran KDE's kicker on my iPaq, I'd have no room left for anything. So, since everyone needs a taskbar in order to switch windows, and since I don't want to have to press a hard-button to do that, I think Matchbox does it very logically, in an interface with which everyone is already familiar.

      What you say makes sense, but it gives me no aversions to Matchbox; it looks damn slick!

    2. Re:Hm by Pig+Hogger · · Score: 3, Interesting
      With the extremely limited real estate on small devices, why use standard window controls (title bar, close box, etc.) which take up space? I would think it would make more sense to have an application take up the whole screen, and provide some space-friendly way to switch between them.
      The Windoze disappearing taskbar is a good point to start; why not have the improductive window border with all the scroll bars, buttons and whatnot disappear beyond the screen edge, only to appear when the pointer hits the side?
    3. Re:Hm by yasth · · Score: 3, Insightful

      because it was designed for mobile applications using styli?

      Concepts like pointer, cursor, etc. don't make sense in that environment. "Dragging" to the edge of the screen won't work because it adds another action, and interfers with useage (i.e. auto scrolling when at the top or bottom of the screen if dragging), not to mention the fact that it adds annother action to be done.

      --
      I'd do something interesting, but my server can't handle a slashdotting.
    4. 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
  2. Pretty by Anonymous Coward · · Score: 3, Insightful

    This is actually sleek and efficient. The gaps between interface widgets aren't TOTALLY consistent, but they're better than in most WMs. And all three of the themes look pretty nice, which is three more good themes than most window managers have. I will seriously consider using this for my window manager on NORMAL, non-pda unix when i get back up to college and am using Solaris regularly again.

    Would someone (i.e., a company) consider doing some serious, professional usability testing on this thing, or something like it? A lot of people who used the newton still swear by it because apple did everything they could to engineer the thing such that the interface lived up to every single bit of potential it had.. so it just felt incredibly natural.

    Of course, my thought would be that building a resource-light, minimalist UI on top of xlib is like designing an energy-efficient, space-conserving, environmentally friendly steering column, dashboard and built-in radio into an SUV.. but that's just me. :)

  3. Matchbox, FVWM, and other WMs by MonMotha · · Score: 3, Interesting

    I used to run FVWM on my iPaq, and blackbox on occasion. They work, but due to the limited screen realestate, and also the orientation (3:4 instead of 4:3 aspect ratio), they tend to not work as well as one would expect. Then I tried matchbox, and I must say, Mallum has done a really good job.

    I won't bore you with the details on how it works, you can read that in the article, but the way he has everything set up works very nicely. Modal windows are definately the way to go on such a small screen. Matchbox does this while still handling dialogs effectively.

    --MonMotha

  4. Low footprint and X by Lupulack · · Score: 3, Interesting

    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 ?

    Sure you can argue that this feature would be ideal for low-resource machines , but that's just not how they're designed. Better to use a custom gui , even based on the framebuffer device ( if we're talking a linux device ).

    And for very small screen devices ( palms , watches ) the idea of windows and window borders seem wasteful. You only have what , 320x200 pixels , don't waste 5 per edge on borders.

    From the screenshots Matchbox doesn't appear to have these problems of wasting screen space ( I am not a User Interface designer ) , but still ... X ? On a PDA ? Or watch ?

    --
    The fact that no one understands you doesn't mean you're an artist.
    1. 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.

    2. Re:Low footprint and X by batkiwi · · Score: 4, Interesting

      There's no greater feeling than firing up an IPAQ running X, ssh'ing to my power-machine with x-tunneling set up, then loading up mozilla/codeguide/gimp/other resource intensive program, and having it respond like a dream.

      I actually see a need for it MORE on a tiny device, especially with wireless network adapters for IPAQs.

    3. Re:Low footprint and X by urulokion · · Score: 3, Interesting

      This isn't your Grandfather's X Windows.

      The Xserver running on the Xipaq is the Tiny-X server running on top of the Frame Buffer. It has the XRandR, Rendering and AA font support extensions.And not only that it supports the Voyager PCMCIA VGA Card. But even given all of this, the Server and support libraries don't eat a lot of memory or storage resources.

      Jim Gettys and Keith Packard has done a fantastic job of cutting down resource used in the IPAQ's X environment. And they're not done yet. There are still more reductions that can be done.

      And don't discount having the ability of using remote displays. It's very nice to be able to run my PIM applications remotely from my IPAQ on my desktop machine: 1280x1024 screen, full sized keyboard and mouse. Who needs to do Hot/Active Sync'ing?

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

  5. Re:If it's resource constrained, why run X? by MonMotha · · Score: 3, Insightful

    The people running Linux on the iPaq aren't your average PDA users. Many of them run it exactly because they can get semi-standard networking and can run standard apps. Have you ever played (well, played is an understatement sicne I could only see the top left corner) starcraft on your PDA? You can only do it via a remote display unless you've found a way to efficeiently emulate an 80386 on a StrongARM (and make it fast enough to run the game and still have time left over for the display and such).

    Most people don't need X. There's OPIE/QTopia for people who wanta PDA. But for people who want to tinker or do rather odd thigns, X works pretty nicely, especially with this specially designed WM.

    --MonMotha

  6. YAWN by WhaDaYaKnow · · Score: 3, Funny

    Yet Another Window Nanager

    Sorry, couldn't resist.

  7. Re:If it's resource constrained, why run X? by JordoCrouse · · Score: 4, Insightful

    like using the framebuffer device, or Qt/embedded

    First of all, QT/embedded is just as bloated as X (maybe even more).

    The framebuffer is a good idea, but by the time you end up implementing all the stuff you need to actually run a decent program, you have implemented most of the XLib anyway. Trust me, I have gone that route before.

    X has its advantages when used on networks, like the client/server model, but it's overkill for personal devices.

    Ok - first of all - if you want to run multiple apps in a window manager environment, you *need* to run it as a client/server setup - Thats exactly what you are looking at on a window manager - multiple clients running on a single server. IMHO, its much better to have a client and server than a monolithic application - less resources to be used.

    Secondly, X uses this same client/server configuration on the desktop - and though some take advantage of the networkability of the protocol, most don't. Yet, nobody ever attacks RedHat or SuSE for using X in a client/server configuration.

    --
    Do you have Linux and a DotPal? Click here now!
  8. 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

  9. 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.
  10. Re:If it's resource constrained, why run X? by dmiller · · Score: 4, Insightful

    X is a resource hog

    Prove it!

    My X is currently using 21M of my RAM (RSS). That is with 6 1600x1200 virtual desktops and a whole lot of windows open.

    Seeing as how 21 * 2^20 * (6*1600*1200*4*2). It seems to be doing a very good job of managing resources. Much better than Mozilla (55M RSS) or Evolution (45M RSS).

    Are you going to back up your assertion with numbers, your are you just going to recite the tired ./ mantra that "X is bloated"?

  11. Re:small and efficient by JPriest · · Score: 4, Insightful

    It also uses Tiny-X server instead of the standard Xfree86, which I'm sure has quite a bit to do with the reason it's not huge and doesn't suck.

    --
    Saying Java is nice because it works on all OS's is like saying that anal sex is nice because it works on all genders.
  12. Re:No X for my pda by gerardrj · · Score: 3, Insightful

    And the Tandy Color Computer threw in multi-user on a 2Mhz processor and 128K of RAM.

    The only reason this article is considered newsworthy today is that programmers have gotten to where they don't care about performance or resource requirements. Programmers today don't consider what library call will be fastest, never mind trying to store toggle flags in a bit instead of and INT.
    If you want good programs to run at decent speeds and look good on a PDA, then go and hire the people that where writing all those games on the CoCo, Commodore 64, TI -99/4a, Amiga and all those other mid 80s systems. These people made magic with almost nothing for resources. Let them work their assembly language magic for a few months. Then watch jaws drop and listen to people ask "How did you get a 16Mhz CPU to do THAT?!?!"

    --
    Article X: The powers not delegated... by the Constitution...are reserved...to the people
  13. Re:No X for my pda by kevin+lyda · · Score: 4, Insightful

    wait, pda's are low power, low mem devices and you say they have no need for the remote display ability of x? really?

    assume that a low memory foot print version of an x-server exists (and you should assume this since it actually does exist). assume your pda has a wireless card and a color screen (because many do). and let's say you're a web designer and you're in a meeting with just your pda and for some reason you need to do up a quick logo. so you fire off the gimp from your high powered desktop box and hae it display on your pda. you do up a quick logo using some gimp scripts and effects and then pass it around.

    there, that's one use for remote display. now use you imagination and fill in the other 1 million cases where gui requirements are small and the stuff behind the gui are highly cpu and/or memory intensive. wait, i forgot java, make that 10 million cases...

    --
    US Citizen living abroad? Register to vote!