= 24 File Managers: Double Commander

Double Commander is a graphical dual-pane file manager for Linux, in the tradition of Midnight Commander (`mc`).
While Midnight Commander (like the DOS application *Norton Commander* before it) has its fans, its audience is limited by the fact that it only runs in a terminal window.
Not everyone wants to use a "flat" interface embedded in a terminal to browse their file system, and so Double Commander provides a similar interface in a way that feels familiar to many desktop users.

image:doublecmd.webp[The Double Commander file manager features two panels by default.]

== Install Double Commander

To install Double Commander, visit its https://doublecmd.sourceforge.io/[website ] and download https://github.com/doublecmd/doublecmd/releases[a package].
It's not packaged for a specific Linux distribution, so just download an archive for your CPU architecture.

If you only want to try it out, you can unarchive it and then launch it from your Downloads folder.

To install it permanently, unarchive the package, move it into a location https://opensource.com/article/17/6/set-path-linux[in your path], and then symlink `doublecmd` to the executable in the source directory:

[source,bash]
----
$ tar xvf doublecmd*tar.xz
$ mv doublecmd ~/.local/bin/doublecmd-X.Y.Z
$ ln -s ~/.local/bin/doublecmd-X.Y.Z/doublecmd ~~/.local/bin/doublecmd
----

== How to start Double Commander

To start Double Commander, use the command `doublecmd`.

Alternately, you can add an entry for Double Commander in your application menu.
First, create the file `~/.local/share/applications/doublecmd.desktop` and enter this text into it:

[source,bash]
----
[Desktop Entry]
Encoding=UTF-8
Name=doublecmd
GenericName=Double Commander
Comment=doublecmd
Exec=../bin/doublecmd
Icon=/usr/share/icons//Adwaita/scalable/apps/system-file-manager-symbolic.svg
Terminal=false
Type=Application
Categories=System;FileTools;Utility;Core;GTK;FileManager;
----

Now Double Commander appears in your desktop application menu.
Note that this does not make Double Commander your default file manager.
It only adds it as an application you can launch when you want to.

== Two panels

Dual-panel file management is a tradition within a subset of file managers, and to some users it's a little unsettling.
If you think about it, though, most file management tasks involve a _source_ location and a _destination_ location.
You might be used to a workflow that goes something like this:

1. Open a file manager and find a file you want to move.
2. Open another file manager window and navigate to the folder you want to move the file into.
3. Drag and drop the file from one window to the other.

You might use a variation of this involving, for instance, a right-click to copy combined with some navigation and another right-click to paste.
Either way, the ingredients are the same.
You locate the source, you locate the destination, and then you make the transfer.

Given that common factor, it makes sense that a file manager like Double Command has a persistent view of the source location and the destination location.
At the very least, it saves you from having to open another window.

== Double Commander interface

Once you get used to the idea of two concurrent views into your file system, there are a lot more features to discover in Double Commander.

* *Menu bar*: At the top of the window is a menu bar. That's pretty standard conceptually, but the menu entries are probably unlike any menu bar you've seen before: *File*, *Mark*, *Commands*, *Network*, *Tabs*, and more. These are task-specific menus, which is great because you can ignore an entire submenu you don't use.
* *Toolbar*: Under the menu bar, there are buttons for common tasks such as opening a terminal, copying a file, synchronizing two directories, and more.
* *Locations*: The location bar is situated just under the toolbar. It lists devices and file system locations, including your boot partition, optical media drive, virtual shared locations, the root directory, your home directory (listed as `~`), and more.
* *File list*: Most of the Double Commander window is occupied by the dual panel view of your file system.
* *Command*: My favorite feature of Double Commander is the single command field below the file list pane. This allows you to enter an arbitrary command to run within the active pane. This is great for the odd command you need to run in a directory that _no_ file manager expects you to run, and so no file manager has a function for. It's the brute force method of the plugin model: Provide a command line and let users run what they need to run whenever they need to run it.
* *Functions*: Along the very bottom of the Double Commander window, as with Midnight Commander, there's a list of common functions, each assigned to a Function key on your keyboard.

== Using Double Commander

Using Double Commander is a lot like using any file manager, except that Double Commander is focused on groups of actions.
For instance, the *File* menu isn't an obligatory entry with just *New Window* and *New Tab*, it's full of useful functions, like creating a symlink or hard link, changing attributes, comparing contents, bulk renaming, splitting and combining files, and more.
Double Commander is direct.
It gets straight to the point, serving as a stand-in for all the commands you'd normally run in a terminal.

== Graphical command interface

More than any other file manager I've seen, Double Commander feels like it's meant to be a graphical interface for commands.
You can map almost everything in its interface to a command or series of commands you're used to running in a terminal.

Of course, the question then is whether you need a graphical command line.
Why not just run the commands in a terminal?
Interestingly, I had the opportunity to witness the value of this recently.
There are times, as a support person for other computer users, when trying to get a user to navigate the terminal can be overwhelming.
This is particularly true when your user is texting on an app on their mobile phone, and you're giving them commands to type into a terminal on their desktop.
This introduces several opportunity for mistakes, and what was meant to be "the fast way" of doing something ends up taking an hour.

It's counter-intuitive to a terminal user, and it's not even always true, but there are times when a graphical interface really is easier to give instructions for.
Picture it: A zombie apocalypse rages outside your compound, and the file permissions of a vital file needs to be changed in order to activate the firewall.
"Open a terminal and type chmod a+x /usr/local/bin/foo...no, that's `ch` as in _change_, `mod` as in _mode_ but without the _e_...no, and then a space. Not between the `ch` and the `mod`, just after the `mod`. And then a space. It's `chmod` and _then_ a space. Not the word _space_, just press the spacebar. It's the really long key under your thumb..."

Or you could just say this: "Click on the file, now with that selected, go to the File menu up at the top and click on Change Attributes..."

Double Command's central feature is in its powerful features disguised as a non-threatening graphical file manager.
Download and try it out for yourself.