Exploring your directories with a 3D file browser

A Better View


Moving a flat filesystem hierarchy to the third dimension makes navigating a directory tree child's play.

By Hagen Höpfner

bluestocking, Fotolia

Typing ls -R / command on the console will produce a very linear and confusing cascade of directory information. When the entire output is finally displayed, it becomes obvious that there must be a better way to keep track of the contents of your hard disk.

3D file browsers like FSV, XCruizer, TDFSB, and 3Dfm use the third dimension to provide a more intuitive view of your directories.

FSV: Brick by Brick

FSV displays directories like a pile of bricks (see Figure 1) or, to be more precise, it displays them like a tree made up of piles of bricks.

Figure 1: FSV is not a 3D-only application. You can see the current directory content in the bottom left, and there is a flat directory tree on the top left.

You can download the source code for the browser from the project homepage [1], and then type the following to unpack the tarball:

tar xfvz fsv-0.9.tar.gz

You need the Gtk developer package, gtkglarea, along with its dependencies, and the gcc compiler to build the binary. Then just follow the normal steps:

./configure && make && sudo make install

When you are done, type fsv in a terminal window or type in the quick starter ([Alt]+[F2]) to launch the browser.

The right-hand pane of the FSV window is used to navigate the 3D view. The starting point is always the directory in which you called the program.

If you prefer to use a different folder as the base of the brick pile, you can modify the root directory in the File | Change Root menu or press the keyboard shortcut [Ctrl]+[N].

FSV analyzes the files and directories that are located below the root directory. This can take considerable time if the directory has several levels of subdirectories (for example, the root directory /).

Left-clicking a directory shifts the focus to that directory. Right-clicking a directory pops up a context menu that you can use to expand and view the directory or that you can use to view all the directories located below this level (expand all). Properties lists the directory properties.

When you open a directory, FSV stacks the directory content in the form of a pyramid on the folder button. To hide the directory content again, simply right-click the base of the pyramid and select collapse in the context menu.

XCruiser: Strange New Worlds

The current version of XCruiser, version 0.3, represents the directory structure as a virtual galaxy (Figure 2). Ubuntu users can install the tool by entering:

sudo apt-get install xcruise

A prebuilt binary for RPM-based distributions is available on the project homepage [1].

Figure 2: XCruiser displays directories as galaxies (empty circles), and files as planets (filled circles).

After downloading the package, type the following to set it up:

sudo rpm -Uhv xcruiser-0.30-1.i386.rpm

Then launch Xcruiser by typing xcruiser in a terminal window or in the quick starter.

XCruiser accepts a couple of command line parameters; typing xcruiser --help gives you a list of all of the details. For example, xcruiser -background black makes sure that space is shown as black on Suse.

You can drag the mouse to move in a specific direction. If you fly off course, the position display will help you find your way back. The horizon (the blue line) is the zero point in the vertical.

Files and directories are located on the zero meridian (horizontal 0). Left-clicking flies you forward, and right-clicking takes you back.

Holding down the mouse button will speed up your flight. XCruiser displays the current Velocity, with negative values if you are flying backwards.

If you fly through an empty circle - that is, a directory represented by a galaxy - XCruiser will change to this directory, or leave it if you are flying backwards. The current galaxy is automatically shown at the top of the screen.

Besides this, XCruiser also displays information on directories and files when you set your sites on them.

If the object you inspect is a symbolic link, XCruiser will display the object as a worm hole to another galaxy.

TDFSB: Preview Included

To set up the TDFSB file browser on Ubuntu, simply type sudo apt-get install tdfsb. Users with Suse will need to download the source code [3] and build the binary themselves.

To download the source code and build the binary, you need the SDL developer packages, SDL-devel and SDL_image-devel. YaST will resolve the dependencies for you.

Besides this, the MPEG preview requires mpeg-0.4.4-1.i386.rpm and smpeg-devel-0.4.4-1.i386.rpm. Both files are available from the SMPEG website [4] and can be installed by entering sudo rpm -Uhv smpeg*.rpm.

After completing this, type the following into the TDFSB source code directory to install the program on your disk:

./compile.sh && sudo cptdfsb /usr/local/bin/

Then type tdfsb in a terminal or quick starter to launch.

TDFSB (see Figure 3) uses the mouse and the arrow keys for navigation. TDFSB displays files differently, depending on their content. For example, images are shown as miniatures, and text files (and HTML) as yellow columns with the file content as a banner.

Figure 3: TDFSB gives you a preview of the file content while you navigate.

MPEG videos are visualized as preview frames, and MP3 files as CDs. Left-clicking a file and pressing [Enter] while holding down the mouse button plays the audio or video content. The "TDFSB Keyboard Shortcuts" table gives you an overview.

3Dfm: File Web

The 3Dfm [5] 3D file manager organizes files and directories in a spider's web. After downloading and unpacking the sources, follow standard procedure to build and install:

./configure && make && sudo make install

This drops the program file into /usr/local/bin. You can then type interface in a terminal window or quick starter to launch (see Figure 4).

Figure 4: 3Dfm displays the directory structure as a kind of spider's web. The center of the web is always the current directory.

After launching, 3Dfm comes up with the current directory. It uses typical folder icons to represent subdirectories. Lines show links between subdirectories, and you just need to click the icon to change to a subdirectory. The current directory is always shown at the center of the window. Clicking the icon for the current directory opens a list of the files stored below it (with the subdirectories "hanging" on the lines).

The parent of the current directory is shown in red, whereas hidden directories are green. To move to a directory lower down in the filesystem, change the view by holding down the right mouse button and dragging the mouse.

If the default colors are not to your liking, you can customize them via the menu. The dialog box (see Figure 5) is hidden behind the pictogram in the top left corner of the window. You can use the Filter tab in this dialog to specify whether 3Dfm will display hidden directories, for example.

Figure 5: 3Dfm supports menu-based customization if the colors are not to your liking.

There is another switch in the top left of the window. Pressing it opens an input box that lets you access directories by typing the path to them.

Conclusions

3D file browsers support intuitive navigation of the filesystem. Several alternative display formats are available; however, the ideal format is largely a matter of taste. Although these navigation tools are quite useful, installing them can be very tricky. The current Suse Linux does not have packages for any of our candidates; Ubuntu at least supports XCruiser and TDFSB.

Support on other distributions is often difficult, and building the browsers yourself is never straightforward due to the many different 3D packages on Linux. In fact, we were unable to build another 3D browser, 3Dfile [6], on openSuse 10.1 or on Ubuntu 6.10 in our lab. ThreeDFM [7] is yet another example of an older 3D application that will not run on current distributions.

INFO
[1] FSV: http://fsv.sourceforge.net/
[2] XCruiser: http://xcruiser.sourceforge.net
[3] TDFSB: http://www.determinate.net/webdata/seg/tdfsb.html
[4] SMPEG: http://www.lokigames.com/development/smpeg.php3
[5] Innolab: http://sourceforge.net/projects/innolab
[6] 3Dfile: http://turma.sourceforge.net/software/3dfile/
[7] ThreeDFM: http://www.thedumbterminal.co.uk/software/3dfm.shtml