humane computing

14 November 2007

Sparse Navigation Tree for File Browsers

For my masters thesis I am writing a new, general file browser for Linux. I am trying to integrate features like tagging, virtual folders, meta-data search and type-specific views and actions, which are all known from domain specific file browsers like F-Spot or Amarok.

One of the newer features is a sparse directory tree for navigation. It is meant to be a "one serves all" replacement for the folder tree, history, places, bookmarks and the button-based location bar, like they exist in nautilus.
All these conventional user interface components show a set of directories; all in a different context, but with quite some overlapping. The underlying thought of the sparse directory tree for navigation is to take the n most important or latest elements of each of these sets, add all their file system ancestors and build a tree with just this joint set of elements. n would be maximized so that the tree exactly fits the space there is in the sidebar and that no scroll bar is necessary.

So the tree is built by first adding the current directory and its ancestors, then adding mount points and important places like the home folder, the trash or the desktop folder. Then the tree is filled with directories from the history and from a list of directories that are often visited from the current directory. If there is still room, some often visited directories are added.

It is interesting to see how the tree adapts to personal browsing habits.
It is not only a a substitute for the mentioned navigational elements. Because the last visited directories are always visible in the sidebar and you can drag-n-drop or cut-n-paste files into the directories shown in the sidebar, there is also no need for dual panel views or for tabs.

I added an animated gif to hopefully show how it looks like. Tell me what you think.

Labels: , , ,