Better filesystem browsing
One of the limitations of filesystem browsers such as the Finder or Windows Explorer is that you are limited to one folder per window or, in the case of the Mac OS X Finder, a chain of nested folders (when in column view), and a two-pane view in Midnight Commander. This is an area of computing which seems to some of us has fallen behind, as there are numerous examples of better approaches with other types of software, such as:
- Tabbed Web browsers and instant messaging clients;
- Split views in text editors and office software for letting you see multiple parts of the same document at once;
- Tiled MDI child windows, such as what File Manager in Windows offered
For anyone who likes to have a lot of folder/directory views open, or wants to conserve screen space and avoid clutter, copious open windows isn’t really the best solution; taking ideas from other software would allow for improved navigation and browsing of folders. There are several advantages of having more than one folder in a single window. One of which is being able to minimise and restore a collection of folder views in one go, within one window. For example, if you are working on a project that involves several folders, you might want to keep them handy in a single window and minimise and restore them all at once. Or, for example, you might want to keep a few folders of MP3s handy in one place for playing. Another advantage is to cut down on the number of open folder windows on the screen.
A few of us have had ideas on how you could arrange for multiple folders to be viewed in a single window, and we’ve come up with two basic alternatives to this approach: tabbed views, and pane views. Explanations and mock-ups of the various designs are shown below, given in terms of the Mac OS X Finder; implementations for other operating systems would vary accordingly.
The idea behind tabbed view is essentially the same as that of a tabbed Web browser or instant messaging client, and is pretty straightforward – a tab bar is added to the folder window, and multiple folders can be viewed in the same window, in tabs. In addition to making new tabs with the New Tab button (where a tab would open either at the same location as the currently selected tab, or where File > New Window takes you, Computer by default), folders and favourites can also be opened into a new tab by holding Cmd while you open them. However, because the X Finder can be set to behave like Classic Finder, such that all folders, when double-clicked, open in a new window, this behaviour might need to be implemented with this. That is, that all folders open in new tabs automatically, unless Opt is held.
It would also be possible to save tab groups as favourites in the toolbar, such that clicking them would add all the saved tabs into the current window (holding Cmd would open the tabs in a new window, and holding Opt would replace the current tabs with the ones in the saved group) – this is already implemented in the iCab Web browser. The picture above shows two saved tab groups, C++ dev and music tabs.
Note that in order to drag items from one tab to another, hold the cursor over the tab during the drag, and that tab will activate, like with spring-loaded folders.
The main disadvantage to the tabbed view, is that it is not possible to view more than one folder at a time within the window. To that end, the pane view provides a rather more comprehensive means of viewing windows of folders. This view introduces two new sets of controls to the window:
The new items in the window are:
- A button bar, with buttons for selecting panes, and for adding and removing panes, and
- Split widgets, also for adding and removing panes.
With pane view, multiple folders are shown within panes in the window. There are two ways to divide the window up – either the Split (knife) button or the split widgets. For example, if you were to grab the horizontal split widget in the bottom left corner of the window, and drag the pane divider across into the window, the window would become split into two panes, with the second pane taking on the folder of the existing pane, thus:
You will notice that both panes have their own button in the button bar; you will also notice that both buttons are selected – this indicates that the panes are visible, as panes can be hidden. The two panes are independently navigable in the same way as folder windows. The currently active pane is denoted by active scrollbars; all other panes get white scrollbars.
The picture below shows a more realistic depiction of how pane view might look in use:
Note also the extra pane buttons – in this instance, there are actually four open panes in the window, but two of them are hidden. Clicking a pane’s button will toggle the pane’s visibility – for example, clicking the Applications button will hide a pane thus:
Dragging the dividers is not the only way suggested for creating panes, though – an alternative method is the knife, or split, tool, whose button is on the left of the button bar. When that button is toggled, the cursor switches to a knife, and a ghosted pane divider follows the cursor:
When the mouse is clicked, a pane divider is inserted at that location. The orientation of the ghosted divider depends on the proximity of the cursor to the edges of the pane which it is over – if the cursor is nearer towards the sides of the pane than the top or bottom, the divider will be horizontal, otherwise it will be vertical. The divider will disappear from under the cursor if the divider would be at a location that would leave one side of it too narrow.
The split (knife) tool also offers the benefit of rapid pane creation: while clicking it once gives you a ‘one-time’ knife that will make one pane division, shift-clicking will lock the knife mode and you will be able to make lots of pane dividers without needing to reselect the knife tool. Clicking on the knife tool again will leave knife mode.
Likewise with tabbed view, holding the Cmd key will open a folder in a new pane.
There are also two alternative methods of removing panes. You can either drag the pane divider across to remove a pane, or you can use the join (glue) tool. Selecting the glue tool (1) will switch the cursor to a glue pot (2), and clicking a pane edge will cause that pane to merge with the pane adjacent to the border. The pane which will be preserved will have a focus ring drawn inside it, and an arrow in the cursor will indicate the direction of merging. For example:
Were the mouse clicked there, the pane on the left will be preserved, and would merge with the pane to its right and occupy its space in the window.
There are a number of possible variations to the interface. For example, the following alternative split/join buttons:
The left-hand design simply offers more consistent button appearance. The right-hand design offers an interface variation, whereby the ‘+’ button is used to add a pane (with an optional drop-down menu to specify where the pane should go – below or to the right of the active pane) and the ‘−’ button is used to remove the active pane. This was my original idea – clicking the ‘+’ button would be the functional equivalent to New Window or New Tab in pane mode, creating a new pane with a single click using either a default folder (such as Computer) or the same folder as was in the active tab when the button was pressed.
Alternatively, the split/join (or add/remove) buttons could be located in the main toolbar:
This is especially useful, as the button bar for hiding/showing panes would probably be an optional feature that can be turned off when not wanted or needed.
One possible way to select which view to use for the window (single folder, tabbed or pane) is a view selector toolbar control:
Note that selecting the single folder option would cause all other panes/tabs than the current one to be forgotten.
One issue with pane view that should soon become obvious, is pane focusing – how does one know which pane is active? As long as the panes all have scroll bars, the active pane will be the one with blue scroll bars (or whatever highlight colour is in use). However, it is otherwise impossible to tell which pane is active, and thus to which pane the toolbar applies, and which pane the keyboard will operate. One possible method is to light the pane’s button blue in the button bar, or to tint the window background of the active pane. Another method is to draw a focus ring around the pane. Alternatively, the icons in an inactive pane could be dimmed. Some method would certainly be needed, however, to avoid confusion.
– Daniel Beardsmore, 3rd March 2004; contributions by Peter Hosey (split/join buttons idea) and Aranor (divider widget idea, and screenshots for the mock-ups)
Comments? Send them to the author. Thanks go to magn0lia and silvestrij for sanity checks.