A proven file manager
Workhorse
Worker, a file manager with more than 20 years of development, has evolved into a tested, powerful, and functional tool.
Two-pane file managers have been around for a long time. Classic examples include Norton Commander, Total Commander, DiskMaster, and Directory Opus. Created in the same vein, Worker [1], a two-pane file manager for the X Window System, has been actively developed since 1998. Many of Worker's features were developed to meet practical needs, resulting in a functional file and directory management tool.
You can find Worker as worker or workerfm in the package sources of most common distributions. On Arch Linux and derivatives, the program is available via the Arch User Repository. However, the Worker package found in your distribution's repository may not be the latest 4.9.x version. Using the latest version of the program typically requires some DIY work. Having said this, Worker has only minimal dependencies (see Table 1) and can therefore be compiled on almost any system without too much trouble. After downloading the source code [2] and unpacking it, use the code in Listing 1 to compile Worker
Table 1
Worker Dependencies
Package |
Function |
gcc |
C++ compiler with C++14 support, GCC >= version 4.9 recommended |
libX11-devel, libx11-dev |
X11 headers and libraries |
avfs |
Open archives, FTP access, etc. |
libdbus-glib-1-dev, dbus-1-glib-devel, udisks, udisks2 |
Disk access |
Optional Dependencies |
|
libmagic-dev, file-devel |
Display image previews |
xli |
Default image viewer can be changed in the config file (see the "Configuration Files" section for more information) |
ibxinerama-dev, libXinerama-devel |
Improved placement of windows |
lua-devel, liblua5.x-dev |
Lua scripting |
libxft-dev, libXft-devel |
Improved font display |
Listing 1
Compiling Worker
$ wget http://www.boomerangsworld.de/cms/worker/downloads/worker-VERSION.tar.bz2 $ tar xf worker-VERSION.tar.bz2 $ cd worker-VERSION $ ./configure && make && make install
Getting Started
When first launched, Worker checks for an existing configuration before opening the main window; an existing configuration can be from an older version of the application. If needed, the start routine will update the configuration (Figure 1).
At first glance, Worker's structure appears almost classic (Figure 2). The two panes display directories as lists (see the "Display Modes" box); either pane can function as the source or target, with a red status bar denoting the active pane. The file manager functions can be found in the buttons at the bottom of the window and in context menus. Alternatively, you can bind commands to a double-click or call them up via keyboard shortcuts.
Display Modes
When you open Worker, the default appearance is Directory mode. To change the display mode, right-click on the status bar. In the dialog that opens, you can also choose from the following display modes:
- Image Display: Shows graphics instead of lists
- Information: Provides additional detailed information from the filesystem, such as access rights, owners, and metadata
- Text Display: Displays the data like in a text editor
Worker's long development history has resulted in a very compact interface. Because Worker is not necessarily intuitive, you need to become acquainted with Worker's controls and technical functions before getting started.
In the red status bar above the current pane, Worker shows the latest information for the directory. The list display in the current pane depends on the display mode and directory contents. To switch between display modes, click on the small triangles in the upper right corner of the status bar.
Worker organizes entries in the lists in tabs, which allows for lightning-fast switching between multiple directories in both the source and target panes. The small plus sign in the upper left corner above a pane opens a new tab. Clicking on one of the active tabs switches to the directory.
The selected directory can be found a second time below the target or source pane, where the tool displays the directory in text form. To the left of this text display, a button with two dots lets you switch to the parent directory. At the bottom of the main window, you will find numerous buttons organized into several groups. These button groups are called a "bank" in Worker jargon. The button banks (see Table 2) control the main functions [3].
Table 2
Worker Button Banks
Bank |
Function |
1 |
Basic functions for files and directories |
2 |
Basic functions for archives |
3 |
Special functions for display, as well as for symlinks |
4 |
Basic Git functions |
5 |
Advanced functions for special file types |
6 |
Other functions |
You can toggle between the banks with the mouse wheel while mousing over the lower status bar. Alternatively, you can use the left and right mouse buttons. If necessary, add your own functions to the groups. Each button can call either an internal function, a shell command, a shell script, or an arbitrary program.
Worker always applies the selected functions to all currently selected entries, which occasionally leads to situations where several procedures are possible. If this happens, Worker will ask how you want to proceed (Figure 3).
You always have the option to trigger almost all actions either with the keyboard or the mouse. In addition, you can customize almost all aspects of the software, starting with the buttons and extending to the list panes, the keyboard shortcuts, and menu entries.
Depending on the file type, Worker changes the commands provided for the files. You then execute the command by either double-clicking or pressing the Enter key. To accomplish these tasks, Worker uses a variety of external programs. As a result of Worker's long development history, several outdated or atypical applications have crept in to this program list.
To find out which external programs are available, search the configuration files for the string:
com =
Make sure to include a space before and after the equal sign. For example, Worker relies on Gimp and the ImageMagick tools for image editing; McEdit, Xeditor, LyX, soffice, and others for text editing; and Netscape for browsing.
In some instances, you can make life easier for yourself by resorting to xdg-utils [4] (XDG is a specification developed by freedesktop.org – formerly the X Desktop Group – for interoperability between different desktop environments). XDG commands such as xdg-open
let you call the tools already installed on your system that you have preset for opening files of certain type.
If you launch Worker in a terminal window, you will see additional hints there if something unexpected happens – for example, if a function doesn't work as expected.
Basic Functions
Worker was originally designed to handle files and directories in pretty much any way imaginable. You will find the corresponding functions mainly in the button banks below the file panes. Worker organizes the buttons in a grid, again grouping the functions both by row and by column.
At least as useful as the buttons, the keyboard shortcuts, or shortkeys, provide quick access to functions that are repeatedly used (see Table 3). The ShortkeyList function in bank 4 gives you a complete list of defined shortkeys. Many of the combinations used with Worker are based on Midnight Commander.
Table 3
Worker Shortkeys Access
Shortkey |
Function |
Tab |
Activate other list pane |
Up arrow/Down arrow |
Go to previous/next entry |
Left arrow |
Move up one directory level |
Right arrow |
Enter current directory |
Home/End |
Activate first/last entry |
Ins |
Toggle activity |
+ (number pad) |
Select everything in the current tab |
- (number pad) |
Deselect everything in the current tab |
Enter |
Perform double-click action |
F3 |
Show current entry |
F4 |
Edit current entry |
F5 |
Copy selected entries |
F6 |
Move selected entries |
F7 |
Create new directory |
F8 |
Delete selected entries |
Shift+Alt+O |
Open current directory in opposite list pane |
Alt+V |
Start volume manager |
Alt+B |
Open/add bookmarks |
Alt+L |
Manage labels |
Alt+N |
Sort entries by name |
Alt+T |
Sort entries by modification times |
Ctrl+D |
Show bookmark entries |
Ctrl+S |
Activate name search in current list pane |
Ctrl+Space |
Open context menu |
Ctrl+I |
Activate information mode |
Ctrl+B |
Activate image display mode |
Ctrl+V |
Activate text display mode |
Important (i.e., frequently used) directories can be saved as bookmarks. In addition, you can label selected entries. To create a bookmark, select the current directory with Alt+B or with the Bookmarks button. In the dialog that opens (Figure 4), you can choose between previously defined bookmarks and change directly to the corresponding directory or add the current directory as a new entry.
In addition to the directory bookmarks, you can use labels for files. You will find the label function in the context menu when you right-click on an entry. You can manage labels with bookmarks. When you open bookmarks, you will also see the labels. If you select a label, the program switches directly to the corresponding directory and highlights the labelled file.
Filters and Patterns
To speed up many tasks, you can filter bookmarks and labels. Ctrl+D shows you only the entries with a label in the file list, providing a useful overview even in large directories. If you call this key combination again, Worker will display all the entries again.
Worker offers several ways to control or limit the actual entries displayed in the list. To control how and what Worker displays in the list panes, you use filters and patterns. For example, you may not want to show all files in a directory, such as /etc/
, which often contains several hundred files and subdirectories. You can also change the sort order of a column by clicking on the respective column header.
Filters restrict what you see in a list. The Change filter button lets you define a sequence of characters for file names (Figure 5). There are two varieties of filters: permanent and temporary. Change filter lets you create permanent filters, and Find file sets temporary filters.
The method Find file is particularly sophisticated. First, Worker tries to find the entered characters string exactly and incrementally. If this does not result in a hit, a fuzzy search is performed, which allows random characters in between the ones you entered.
In fact, Worker's filter functions go even further: Worker supports the use of Boolean expressions. If a character string starts with an opening parenthesis, the program interprets everything up to the corresponding closing parenthesis as a logical expression. In the documentation [3], expression matching shows how this is done and which arguments the software assigns to which keywords.
Patterns are closely related to filters. They control the selection of files taking into account certain criteria. You can create patterns with the divide key on your keyboard's number pad. By default, you define file name patterns this way (Figure 6), but directories can also be displayed using patterns. In addition, you can apply several patterns in succession to select multiple types of file names.
Worker recognizes file types based on the file's content. Worker shows the file's MIME type [5] in the Type column. You can also use the MIME type for filtering and patterns [6].
Buy this article as PDF
(incl. VAT)
Buy Linux Magazine
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters
Support Our Work
Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.
News
-
New Linux Kernel Patch Allows Forcing a CPU Mitigation
Even when CPU mitigations can consume precious CPU cycles, it might not be a bad idea to allow users to enable them, even if your machine isn't vulnerable.
-
Red Hat Enterprise Linux 9.5 Released
Notify your friends, loved ones, and colleagues that the latest version of RHEL is available with plenty of enhancements.
-
Linux Sees Massive Performance Increase from a Single Line of Code
With one line of code, Intel was able to increase the performance of the Linux kernel by 4,000 percent.
-
Fedora KDE Approved as an Official Spin
If you prefer the Plasma desktop environment and the Fedora distribution, you're in luck because there's now an official spin that is listed on the same level as the Fedora Workstation edition.
-
New Steam Client Ups the Ante for Linux
The latest release from Steam has some pretty cool tricks up its sleeve.
-
Gnome OS Transitioning Toward a General-Purpose Distro
If you're looking for the perfectly vanilla take on the Gnome desktop, Gnome OS might be for you.
-
Fedora 41 Released with New Features
If you're a Fedora fan or just looking for a Linux distribution to help you migrate from Windows, Fedora 41 might be just the ticket.
-
AlmaLinux OS Kitten 10 Gives Power Users a Sneak Preview
If you're looking to kick the tires of AlmaLinux's upstream version, the developers have a purrfect solution.
-
Gnome 47.1 Released with a Few Fixes
The latest release of the Gnome desktop is all about fixing a few nagging issues and not about bringing new features into the mix.
-
System76 Unveils an Ampere-Powered Thelio Desktop
If you're looking for a new desktop system for developing autonomous driving and software-defined vehicle solutions. System76 has you covered.