[Aptitude-devel] Thoughts on top-level UI design

Daniel Burrows dburrows at debian.org
Thu Jul 23 14:59:26 UTC 2009


  With the resolver work stopped for now, I've been thinking about what
to do with the UI.  I haven't written any code because I have family
visiting and not enough time to do that (plus I need to get up to speed
on where we are with history tracking once I do have time), but I have
had time to step away from the project and get a few ideas.

  Here's one.

  So far, the aptitude GTK+ interface has been entirely organized around
tabs.  I'd like to propose something a bit different.  Instead of tabs,
we can organize the main UI around general areas of functionality.  So,
for instance, there could be a dashboard view, a packages-list view, a
package information view, a dependency solver view, etc.  Within each of
these views there would be tabs if appropriate, but all the tabs would
be of the same "type".

  This has two major benefits that I see.  Conceptually, it gives the
user some well-known "places" they can "go" to do stuff, with one
"place" per task.  And on a practical level, for those of us that use
lots of tabs, it provides a simple way of organizing tabs by type.

  There are some existing programs that do this.  For instance,
Rhythmbox has a collection of different types of things in a list down
the left-hand side of the program.  A lot of Web pages function
similarly.

  The left-hand bar seems to be a bit of a standard (i18n question:
maybe in RTL languages it should migrate to the right?) and I think
copying it makes sense.  Some higher-end software has fancy custom
buttons on the left, but I think from a cost/benefit perspective that
doesn't make sense for aptitude -- a browse list will work just fine.
If I want to get really fancy, it can have icons.

  The initial set of "places" that I imagine having is:

    1. Dashboard  (unsure about this one)
    2. Check for updates
    3. Search/browse packages
    4. View package information
    5. Solve dependencies
    5. Preview / apply changes

  So the UI would look a bit like this:

+----------+------------------------------------------------------+
|>Dashboard|                                                      |
| Update   |                                                      |
| Search   |                                                      |
| Info     |                                                      |
| Solve    |                                                      |
| Apply    |                                                      |
|          |                                                      |
|          |        (dashboard appears here)                      |
|          |                                                      |
|          |                                                      |
|          |                                                      |
|          |                                                      |
|          |                                                      |
|          |                                                      |
|          |                                                      |
|          |                                                      |
+----------+------------------------------------------------------+

  Some extra information could be supplied here.

  One question I'm pondering: if a task is irrelevant (e.g., there are
no changes to apply), should it be grayed out, or should its view be
replaced with an explanatory message? ("no changes to apply; make some
changes and come back")

  Daniel



More information about the Aptitude-devel mailing list