Worker - An Introduction

From Manjaro Linux
Jump to: navigation, search

A Worker in Progress


Some Background

Please note: Worker is currently not available in the
Manjaro repo, so you need to install it with "Yaourt"
(or similar) from the Arch User Repository (AUR)[1].

Unfortunately the documentation on Ralf Hoffmann's site (he is the creator of Worker, amongst other app's), is incomplete & parts at least are somewhat out of date. You basically work much of how Worker is configured out for yourself without having your hand held. That said, the GUI Worker Configuration Manager is pretty self explanatory.


The Worker Configuration screen shown above, will give you an inkling of the types of configuration options that are available inside of it.

Worker is an extremely capable file manager, that I believe was inspired by Jonathan Potter's brilliant Amiga file manager - Directory Opus 4.**. In many ways Worker exceeds the capabilities of DOpus, though it doesn't internally multi-task to quite the same extent that DOpus did.

Ralf has been developing Worker for many years now. You get an introduction to its power on this page: [2]

What can this Filemanager called Worker do?

Worker is usually installed with a pretty bare bones button setup. It is then up to the user to make Worker the way that they want Worker to be. This is done by using the Worker Configuration panel. Which is found by hitting the C - Configuration in the top left of the Worker window, it is right next to the A - About.

Worker is incredibly versatile, following is a short list of some of the things that Worker can do:

  • Has buttons that you can configure (the number of too) to run built-in commands.
  • Run external applications that you have set up to work on one or multiple files that you have selected in one of Worker's file list display.
  • Worker can call applications that don't have anything to do with the files that are showing in Worker's file list displays.
  • You can run short or complex scripts that you or others have created.
  • Combine any number of the aforementioned different types of commands to execute in sequence.

The above barely scratches the surface of what Worker can be configured to do. It is very quick, & has barely any other dependencies than

Custom tasks, ranging from the very simple to the extremely complex all fall within the capacity of Worker.

Select your Colours, Fonts

A good number of screenshots of Worker can be found here: [3]

As informative as the screenshots shown at the above link are, they don't show you what can be done colour wise with Worker. Using various colours to suit your eyes/taste & to make Worker more easily used & more practical, as you can use certain colours to good effect (especially where there is danger, as in the case of commands such as DELETE , Reboot , Shutdown & any buttons that you have set up to use Sudo or root privileges one way or another. The first screenshot on this page is a reasonably good example of the use of colours in this way.

Apart from being able to select the main interface colours as shown in the following image, you can also set the number of colours to be used & also modify the colours to suit you.


When you set Worker up, you can select the font & font size that you would like to use. Choosing fonts is as far as I'm concerned the most pre-historic part of Worker, though as of this edit, the choice of font/&/size is now much better than it was. Fortunately if you do need/want to do it, after you have done it once, there isn't much to do when it comes to resizing fonts thereafter. See this page of the Worker documentation for more on the subject of choosing sizing Worker's fonts: [4]


Paths & Bookmarked locations

You can setup custom Path buttons (the Path bank of buttons is the left hand column in the main button bank) you can have as many path button banks as you want, you cycle through these banks by using the right mouse button (RMB).

Whilst we are on the Path subject, I should mention that you can also use bookmarks to bounce between oft used locations (paths) in your system. The tabs go across the top of each file list window, you move to a list of files in a different part of your system by hitting the tab that will show that list with your mouse pointer & the left mouse button (LMB).

Custom Button Configuration

You also can set up the Worker command button bank(s) to suit you. Choose how many rows of them & how many banks (each bank will have the same number of buttons) as well. I use two banks of buttons, the second bank behind the main bank of 42 buttons, carries buttons for working with many different types of file compression, plus some for audio ripping to various specific formats. You cycle to the next main button bank by hitting the bottom bar in the Worker window - it holds the date/time, free RAM, swap usage - though this is somewhat configurable too.


I use a number of buttons that came as part of my initial Worker install, though most of the buttons in my config have been made by me to suit my needs. When you see a button in a screenshot that has a "dog eared" top right corner, that means that if you use your RMB on it, you will have access to another button option that is hiding underneath. (You could for example have the top button saying Edit for editing existing files, & the button accessed via the RMB, underneath, saying Edit New for creating new files.)



Use external applications on files

Even though Worker comes with inbuilt text & image viewing abilities, I prefer to set Worker up to use more powerful external programs. So for viewing images, I use Geegie. By associating Geegie with the various types of image file types available (using the Worker Configuration GUI), when I double click on an image file in the Worker display, Geegie displays it for me (you could set different image types to be opened by different image viewing or editing programs if you had the need).


I can then view all of the images in that directory by scrolling my mouse wheel, or tell Geegie to go full screen & play a slide show of the images, or do whatever else Geegie will allow me to do with any of the images in that directory.

If I RMB click on the F3 - Show Pics button (yes you can easily set up function keys too), I will see, Edit Pics (the RMB buttons are all in different colours than the top LMB accessed buttons). If I have an image file highlighted in Worker, then Pinta (my choice, you can use whatever image editor you wanted to) will open up with the highlighted file ready for me to edit.

This can be done for any type of file on your system that you have a program that you want to use to edit/view it. The File Type list included in the Worker Configuration GUI (the list is part shown in an the preceding image) is huge, very highly configurable (something like fourteen different custom user options can be set up) plus you can add custom file types quite easily.

For example, I use Evince for .pdf files, Firefox for .html files, Leafpad for .txt & unknown files, I have sudo Leafpad buttons for both creating New files & of course to work on existing files. So I can select a config file in say the /etc & then use the Worker sudo Leafpad button on it, which will cause Worker to throw up a terminal window where I have to input my sudo password, then the config file from /etc will be showing in Leafpad & available for me to edit & then save the changes.

You can of course use the buttons to call programs that have nothing to do with any of the files in your Worker display. You can run scripts, simple or complex from a button, as normal user or with root privileges, you can combine applications & scripts & most anything else you can come up with to work in sequence. It is up to your imagination &/or needs, to do what you want to do with Worker.

Worker is built for those that like to customise

This is a part of what I really love about Worker. You can make Worker do what you want it to do & not have to put up with having to do things the way someone else wants you to do it.

This is all fine & good, unless you are someone who loves working with windows & icons. Under those circumstances you would find Worker to be just exactly what you don't want (you may even think that Worker is pre-historic!).

For me Worker is perfect. After all these years of using Worker, I'm still finding things that I can do with Worker to make it suit me even better (that's apart from my swapping an application that I call from Worker to do whatever, for another that has similar capabilities, this happens from time to time).

Backup your ~/.worker/config & use it elsewhere

You can save your custom ~/.worker/config file (it is a REALLY good idea to keep a backup of this file). Apart from saving your configuration from being lost to corruption or whatever, you can transfer your ~/.worker/config file to other installations of Linux (it can run on OS/X too, but it is messy to get it functioning there). You can also edit the ~/.worker/config file directly with a text editor, which can be useful sometimes.

Edit the ~/.worker/config file directly

I'll give an example: I use a 24" 1920x1200 res' display on my main machine. The fonts that I use in Worker range in size from 18 to 24 points. If I transfer my ~/.worker/config file to another system that is using a smaller lower res' monitor, when I then run Worker with my transferred custom config on that machine, the display will be very wrong making Worker pretty unusable. I won't be able to use the Worker Configuration GUI to modify the font size, as the large fonts have made it impossible to do so (can't see/access all the necessary parts of the Worker Configuration GUI).

So I just go in to the ~/.worker/config file with a text editor, scroll down to the font section & change the sizes. Save it, restart Worker, go into the Worker Configuration GUI (which I can now use) & then adjust/fine tune the config to suit the new machine.

If you ever strike this problem, this is the part of the ~/.worker/config file you need to edit. The following starts at line number 148 on my machine currently, so that gives you an idea of around where to go looking:

fonts {
        globalfont = "-*-verdana-bold-r-normal-*-14-*-*-*-*-*-*-*";
        buttonfont = "-*-verdana-bold-r-normal-*-14-*-*-*-*-*-*-*";
        leftfont = "-*-verdana-bold-r-normal-*-14-*-*-*-*-*-*-*";
        rightfont = "-*-verdana-bold-r-normal-*-14-*-*-*-*-*-*-*";
        textviewfont = "fixed";
        xftfonts {
        globalfont = "Sans-18";
        buttonfont = "Sans-20";
        leftfont = "Sans-24";
        rightfont = "Sans-24";
        textviewfont = "Sans-20";

By looking at the above you can see that it is the xfgfonts section that is where the large 18 -> 24 size fonts are, so you just make all those numbers suitably smaller & change nothing else, then you can use the Worker Configuration GUI to fine tune your imported settings to suit the new machine.

When I import the setting to another machine, I first install Worker then I just copy my backup ~/.worker/config file into the same location on the new machine. It is the simplest most effective method as it totally replaces the original file.

Making Worker work how you want it to

The above will hopefully give you more of an idea about how Worker functions, you have to make Worker your own, this doesn't happen quickly, but it does get easier once you have understood the basics. You really have to get into the Worker Configuration GUI & have a look around to start to get familiar with it.

For setting up buttons, look at how other buttons are setup, you will start to see that there are certain options that are native to Worker (like the {f} in the coming example) that are commonly used when you want to open a file that you have highlighted in the Worker display. The following example (is much clearer & simpler than it looks here, when you are actually looking at it in Worker running on your own system).

Using an external Text Editor on an existing file

For the button that I use to edit existing text, I use the following command (bold italic) accessed this way:

Worker Configuration > Button Configuration > F4 Leafpad > own command > Configure > program: > leafpad {f}

For the button that I use to create a new text file, I use the following command (bold italic) accessed this way:

Worker Configuration > Button Configuration > F4 Leafpad > own command > Configure > program: > leafpad {Rs{Enter Filename:}{}}

The following image shows where you would put either of the above commands plus it has had the O at the end of the program: field, selected, so you get to see some of the Option flags available.


Options, Options...

There are currently 47 Option flags that can be seen when you hit the O at the end of the program: field, where you enter in your own command as seen in the above two examples, it is right before leafpad .

Of those 47 Options, I have the need to use very few of them. When you look at what the options can do, you will see that you can get very sophisticated. Me, I only have comparatively simple requirements of Worker.

The previous image shows some of those 47 Option flags in the window on the right hand side of the image. The image also shows some other stuff that was discussed in the previous section or two.

Inbuilt Commands

I guess I should also mention that Worker currently also has 61 commands built into it. They are listed when you wish to create a new button (& elsewhere) & choose the Add Command button. The first in this list of 61 commands is own command , which is the one I use most often because I'm a power tripper. (wink)

The following screenshot shows some of those 61 commands.

Sequencing Commands

You can also have more than one command listed in sequence. Meaning that when setting up a button to do what you want, after the creation of a command, instead of OK'ing out of that window, you add another command, & if needed you keep doing this.

The above image already has a command (it uses Geegie to show an image that has been selected in one of Worker's file lists), you can add more commands if you need to sequence them for some reason, the commands can be any mixture of both inbuilt commands & external programs.

Fairly recently I had the need to do this when I had setup a script that turned dcompmgr on (to stop tearing), then ran VLC & the movie that I'd selected in Worker (before hitting this button of course). The movie would finish & then there was another command that killed dcompmgr. I set this up for both VLC & smplayer.

There are also some other buttons on my system that use more than one command in sequence.


The Worker filemanager is certainly not one that everyone would want to set up & use. Though for those of us that it does suit, the more we use it, the more we get to know Worker, the more we configure it to be just the way we want it to be.

It is very easy to change the applications that we call from inside of Worker, that we use to work on whatever kind of files in whichever way we have chosen. Worker doesn't mind, that is what it is made for (well, a part of what it is made for).

When foundational changes are made to GNU/Linux, the creator of Worker updates Worker (if required) so that Worker will continue to function at least as well as it did before such changes came down to us from the upstream GNU/Linux masters.

In over >10 years of using Worker there has only been a couple of problems that took an upgrade or two (that came in pretty quick succession) to completely overcome. I spoke to Ralph (the creator or Worker) about one of these, he assisted me with a workaround & also had me test a thing or two before he made the next release that solved the problem for everyone else. I can't ask for better than that!


Following is a link to this page's forum counterpart where you can post any related feedback: [5]