SpaceFM universal file manager

A well-known adage of Unix states that "everything is a file," which means a variety of tools exist for moving, copying, and opening files. Most tools either follow the Windows Explorer model, like Nautilus and Dolphin, or hold up the banner of the antiquated Norton Commander, whose concept of split views still seems convincing to many users.

SpaceFM [1], which developed out of the PCManFM code, resembles Explorer at first glance, as the main window shows (Figure 1). Over and above the inherited concept, however, SpaceFM provides functionality that leaves almost all other file managers in the dust.

Figure 1: SpaceFM's window layout seems familiar but goes its own way in terms of range of functionality.

Distributions

Some distribution maintainers have already opted to ship SpaceFM as their default file management tool [2]. Parted Magic [3], for one, provides a Live CD with SpaceFM as its sole tool for disk partitioning and system restoration.

Generally, the smaller distributions and special rescue programs are the ones that rely on the newcomer, including a few lightweight systems, such as ArchBang [4].

To set up SpaceFM on your system, you can install it either from the distribution repository (see "Installation" box) or – to use the latest version – you can build the software from its sources (see the "Installation" box).

Installation

The mainstream projects are still somewhat behind the small distributions regarding SpaceFM. Only Fedora, Mageia, and Arch Linux have officially maintained packages of the file manager. If you expect full network capabilities, however, the offerings are limited to Arch Linux. Fedora and Mageia are missing the required udevil package [6].

You don't necessarily need to compile the program yourself, because the SpaceFM project provides packages for Debian, Ubuntu, and openSUSE [7] that are enhanced with udevil. They are still a good choice despite not having quite the quality management of the larger distributions. For Ubuntu, for example, Mateusz Åukasik provides a PPA that can be added to your sources by copying the following lines to your list of repositories if you are using Saucy:

deb http://ppa.launchpad.net/mati75/spacefm/ubuntu saucy main
deb-src http://ppa.launchpad.net/mati75/spacefm/ubuntu saucy main

If not, change to your version of Ubuntu.

Installing from the sources may prove useful in some cases when you find a prebuilt package on the net. Either download the current tarball or use the following command to download the sources (around 60MB):

git clone https://github.com/IgnorantGuru/spacefm.git

Now all you need when unpacking the tarball in the downloaded folder is the usual three-step configuration configure && make && make install (with root privileges) to get SpaceFM on the disk.

Although the program provides an installation script, the transfer of various options are poorly documented. GTK3 might result in other smaller problems (see the "SpaceFM and GTK3" box).

You can also integrate udevil , if desired. The SpaceFM package site includes the matching source code links.

SpaceFM and GTK3

SpaceFM is currently making a switch to GTK3. The code isn't quite mature and provides no new features, so compiling with the --with-gtk3 option is hardly worthwhile. You must ensure, however, that regardless of the GTK3 default, the corresponding developer package for the older GTK version is actually present on the system. Otherwise, the GTK3-devel package is used.

Occasionally, errors occur while displaying and navigating when in combination with the newest GTK3 engines, so a change to the last version is not recommended. That applies to Oxygen (oxygen-gtk3 ), which was used for this article's screenshots and whose Fedora package is already based on GTK3. A do-it-yourself program from the sources could be a remedy in this case.

Additionally, some non-English translations in the last published SpaceFM version 0.8.7 are incomplete and don't largely follow the syntactical and grammatical rules that apply to other GTK software, such as Gnome itself, Ubuntu, and XFCE. These shortcomings were largely eliminated in Git.

Starting out with SpaceFM

SpaceFM does all the basic stuff well, such as file operations and access to network resources and removable media. Removable media are in the Devices | Show menu.

When activating a menu entry, SpaceFM creates space in the upper left window corner for access to available media such as CDs and memory sticks.

You can connect the SpaceFM drives to the network. However, this might not work right away, because the program needs udevil. Fortunately, you can get it from the same place you got SpaceFM. Without the additional software, you would need to access such resources using external tools (Figure 2).

Figure 2: Integrating resources from the network requires some work if the udevil tool isn't available.

A really interesting feature of SpaceFM is its ability to display four simultaneous views while making fine adjustments in each one. Thus, you can create almost a Commander out of Explorer, or vice versa. For example, you can have one view as a list while another has icons, as you wish.

You can open and close views using the check boxes at the upper right, with the SpaceFM folder always in the last active view (Figure 3). The elements of the visible views are always active, with the check marks of the inactive views grayed out.

Figure 3: A window with four views requires considerable concentration.

This approach makes navigation easier, especially with keyboard operations. You can also use the tab version, where simply clicking the plus sign opens another tab. Keeping track of the four open views takes some practice, but having the feature doesn't necessarily mean using it. Usually, a single view works best initially, with others added as you go along. The behavior is somewhat reminiscent of the dynamic working interface of the Gnome shell.

Style Change

You can opt to turn SpaceFM into a kind of Midnight Commander, but the behavior unfortunately isn't 100 percent that of the original. Also, all file operations are mouse driven only, and object copying and moving operations are currently missing. With practice, keyboard operations are easier with Krusader, etc.

With two open views, you first set the mode to list view, by using View | Style | Detailed in the window's context menu. You can hide super long file lists by setting a checkmark for the View | Tree in the same menu. In Commander style, you don't need any further views, which makes the check boxes bar superfluous, and you can deactivate it with View | Panel Bar . Now the nostalgic two columns are ready for use (Figure 4).

Figure 4: With a few actions, you can convert SpaceFM into the nostalgic look of Midnight Commander.

Operation without the mouse requires some fairly extensive key combinations, because many key presses do nothing. Fortunately, copying with Ctrl+C and pasting with Ctrl+V does work. Even moving files between windows can be complicated.

After copying or cutting with the usual key combinations, you need to change to the other panel with Alt+A, G, 1 or 2, then copy the files there. If you want things simpler, don't be afraid to contact the developers.

Fortunately, you won't need to do this task immediately. As you can open a terminal in an active folder by simply pressing F4, you can also assign function keys to many menu items. SpaceFM doesn't lay out this process too clearly. You first need to go to View | Design Mode to enter a special mode. Then, you can right-click an entry and change the key assignment with Key from the open context menu (Figure 5). This approach works for all menus except the Bookmarks one.

Figure 5: SpaceFM without the mouse. In Design Mode, you can change the key shortcuts for menu items.

Plugins

As with any decent file manager, SpaceFM lets you simplify your work with your own commands. In the Tools | New Command menu, you open a wizard where you give the command a name and then specify the command itself in the second window. Thus, you can use variables such as %d and %F to refer to a folder or selected file. When you create a command in SpaceFM, in naming it, you can add an underscore before the desired character to use later as a keyboard shortcut.

You can also enter Bash commands directly in the Path bar. Precede your instruction with $ , and SpaceFM will execute it, showing the output in a separate window (Figure 6). In Figure 6, you can see the output of the cat command.

Figure 6: SpaceFM provides a command console window without needing a separate terminal.

You can export your own commands as a plugin, which can make it easier to disseminate to other SpaceFM fans on the Internet. Some plugins are on the project's wiki page [5], including tools for easily adding local or remote drives, for renaming multiple files according to a pattern, or sending files over Bluetooth.

Exporting your own plugins to a compressed archive is as easy as importing. With Plugins | Install | File , you open a dialog where you select the desired file. The new extension then appears immediately without a restart in the plugin menu. Alternatively, you can pass the installer a URL. The software installs the actual plugin in the background after downloading it with wget .

A vulnerability is the fact that the installation gives the plugins root privileges. If you don't have them on the computer, you might as well forget about plugins. A system-wide installation, instead of storing in the local directory, occasionally can get package management out of step. The plugin files usually go to the /usr/share/spacefm/plugins directory, and deinstalling or updating SpaceFM can leave orphaned directories.

Conclusion

SpaceFM is an ambitious project that tries to catch many birds in one net. The software provides unlimited configuration options. The fact that a number of smaller distributions have already adopted SpaceFM as a standard tool suggests that the file manager might establish itself in the long run alongside programs like PCManFM and Thunar.

Whether you want to replace your existing file manager now or later, SpaceFM is well worth considering.