= File managers: Rox Filer

Rox filer is an open source file manager for Linux, once intended for the defunct Rox desktop but now a streamlined application for any window manager or desktop.
There hasn't been much activity on the Rox project since 2014, and even then it already mostly in maintenance mode.
And that's part of Rox Filer's charm.
In a way, Rox Filer is a snapshot of an old desktop style that was progressive for its time but has given way to a more or less standardized, or at least conventional, interface.

== Install Rox Filer

On Linux, your distribution's software repository may have Rox available for install.
For instance, Debian packages it:

[source,bash]
----
$ sudo apt install rox-filer
----

If your Linux distribution doesn't package Rox Filer but you want to try it out, you can https://opensource.com/article/21/11/compiling-code[compile from source] by downloading the https://sourceforge.net/projects/rox/files/rox/[source code], installing its build dependencies, and then compiling:

[source,bash]
----
$ sudo dnf install gtk2-devel libSM-devel \
  shared-mime-info glade-libs xterm
$ wget https://codeload.github.com/rox-desktop/rox-filer/zip/refs/heads/master
$ unzip rox*zip
$ cd rox-filer-master
$ ./ROX-Filer/AppRun
----

== Configuring Rox

The Rox file manager is based on the look and feel of RISC OS, an operating system developed by Acorn in Cambridge England (the same group responsible for the popular Arm microprocessor).
Today, there's an https://www.riscosopen.org/content/downloads[open source RISC OS] you can install on a Raspberry Pi, but for now Rox is close enough.


Rox has a simple layout.
It has no menu bar, but there's a toolbar across the top, and the file panel at the bottom.

image:rox.webp[Rox file manager]

As with the KDE Plasma Desktop, the default action of a _single_ click in Rox is to open an item, whether it's a folder or a file.
Unfortunately, no version of Rox, either packaged or compiled directly from source, seems to be completely integrated with the mimetype definitions of the modern Linux desktop.
For instance, Rox on CentOS renders an error when I click on even a basic text file, while the packaged version of Rox on Debian opens a plain text file but not a JPEG or archive file.
You can fix this by setting a *Run Action* in the right-click context menu.

image:rox-menu-run.webp[Setting a run action is the Rox file manager]

Setting a run action can have broad definitions, so you don't have to set a separate run action for JPEG, PNG, WEBP, and all other image types, instead setting the same run command for all mimetypes starting with `image`.

Once you set that, you're ready to manage files with Rox.

== Navigation

You can navigate through your file system using the arrow icon in the top toolbar.
The *Up* arrow takes you to the parent directory of your current location (in other words, the folder your current folder is in), 
To descend into a folder, click on it.

== Refreshing the view

Rox may not redraw the screen for every action, so sometimes you may need to prompt it to refresh.
Click the *Circle* arrow in the Rox toolbar to refresh your current location's contents.

== Copy or move a file

There are two ways to copy or move a file in Rox.
First, you can launch a second Rox window and drag and drop files from one window to the other.
When you do, you're prompted to copy, move, or link the item you've dropped.

Alternately, you can right-click an item and open the **File** submenu from the context menu.
In the **File** submenu, choose *Copy* and then enter the destination path for the item you want to move or copy.
After you've confirmed that the file has successfully been copied to the target location, you can optionally select the item again, choosing *Delete* from the *File* menu.

== Options

You can customize some aspects of Rox by selecting *Options* from the right-click menu.
This brings up a Rox configuration screen that's admittedly only partially relevant to Rox.
The Rox options assume you're running a window manager, like https://opensource.com/article/19/12/linux-window-maker-desktop[Windowmaker] that provides a traditional dock (or "pinboard" in Rox terminology).
I wasn't able to get the pinboard options to work on either https://opensource.com/article/19/12/fluxbox-linux-desktop[Fluxbox], my preferred window manager, or Windowmaker.
In both cases, the window manager handled iconified windows, and I wasn't able to configure Rox to override the control.
It's possible that I wasn't drastic enough in some of my configurations, but considering that Linux window managers are very capable of managing iconified windows, the pinboard mechanism of Rox isn't a vital feature (and probably not as flexible as the window manager's options.)

The other options, however, still work as expected.
For instance, Rox by default resizes its window size to fit the contents of a folder.
When you change from a directory containing twelve items to a directory containing just three, Rox shrinks its footprint.
I find this jarring, so I chose the *Never automatically resize* option, forcing Rox to stay whatever size I set.

== Window commands

Some of my favorite features are four menu items hidden away at the bottom of the *Window* submenu in the right-click context menu.
They are:

* *Enter path*: Enter an arbitrary path and change directory to it.
* *Shell command*: Enter an arbitrary shell command and execute it.
* *Terminal here*: Open a terminal at your current location.
* *Switch to terminal*: Open a terminal at your current location, and close the Rox.

I love options that allow for quick navigation or quick commands, so it's nice to have these close at hand.

== Oldies

Rox is a "blast from the past," whether or not you've ever used RISC OS or something like it.
Rox represents a style of digital file management and even desktop configuration that just doesn't quite exist any more.
I've run Fluxbox, on and off again, at work and at home for the past decade, and I love manually configuring menus and configuration files.
However, most of the Linux desktop has moved on from the conventions Rox relies upon.
It's not impossible to make Rox fully functional, but it would take a lot of work, and most of what you'd be configuring are already provided by modern window managers and desktops.
Even so, Rox is fun to use and experience.
It's a great demonstration of how flexible a traditional Linux desktop setup was (and still can be, if you use only a window manager), and much of its charm is in its simplicity.
I can't imagine a file manager today not having a dedicated move function, but Rox dares to force you to copy and delete instead.
It's a different kind of file manager, and it might not be the one you use all day every day, but it's something you have to try if you miss, or literally missed, the "old days" of the Linux (or RISC OS) desktop.
