- 1. Directory list view
1. Directory list view
1.1. Introduction
Worker uses a two-pane approach for displaying directory content (also known as an orthodox file manager). Each of both sides supports several modes for showing different kind of information (directory mode, information mode, text view mode, ...).
One side is always active or source of an operation, while the other side is inactive or destination of an operation. The active panel is indicated by a red list view bar on top of the list view area (the colors can be configured). Switching sides is done by clicking on the corresponding area or by pressing TAB in the default configuration.
1.2. Directory mode
The directory list view (directory mode) is the main view for browsing directory content. The current directory name is shown in the editable path field at the bottom of the list view. The window title also contains the path for the active side.
The visible columns can be configured and usually contains the file name, file size, permissions, and file type information. The width of a column is dynamic by default but can be changed by moving the mouse in between two headers and clicking on the header separator. Double-clicking it will change back to dynamic width.
By clicking in the header, the sort mode can be toggled.
1.3. List view bar
The list view bar on top of each side (above the list view) displays status information about the current mode. For the directory mode this includes the following information:- the filter string (if active)
- a short status of sort and filter mode
- the mode name
- the free space in the shown directory
The following text shows the name of currently active mode of the corresponding area below the list view bar. The most important mode is the "directory mode" which list files of any directory. Other modes are the "information mode" for displaying detailed information about an entry, the "show image mode" for displaying images in the area below, and the "text view mode" for displaying the content of the active entry.
1.4. File name prefixes
In front of file names a special character is used to differentiate between different kind of files:Character | Meaning |
---|---|
/ | Directory entry |
~ | Symbolic link to a directory |
* | Executable file |
@ | Symbolic link to a file |
! | Broken symbolic link (target does not exists or is inaccessible |
- | character device |
+ | block device |
= | socket |
| | pipe (named fifo) |
regular file |
1.5. Virtual directories
The virtual dir mode introduced in Worker 3.0.0 also supports viewing so-called virtual directories. Those directories can be search results which can be "panelized". You can work with those directories just like regular directories, move files around, execute external program, etc. The file names shown in the list view are paths relative to the base directory (which is the common prefix of all entries in the virtual directory).
A virtual directory can be identified by the path name, it does not start with a slash but some other identifier. If it comes from search results, it starts with "search...".
You can read more information at the virtual directories page.
1.6. Navigation
In the default configuration, the navigation through the directories is done with the cursor keys. The active entry is highlighted in a different color and can be moved by pressing the up and down keys.
The right cursor key enters the directory of the active entry if it is a directory, while the left cursor key changes to the parent directory of the current directory.
When navigating a virtual directory (for example, from search results or the path jump dialog), the left and right keys behaves slightly different. Pressing the right cursor key will refine the virtual directory to contain only those entries that are in the same base directory as the active element. The left cursor key will go to the parent directory but staying in the virtual directory if possible. This method allows to navigate through virtual directories even if only files are visible (from multiple, different directories).
Example:
This picture shows the panelized path jump entries. When pressing the
right cursor key, the view will change to the content shown in the
next picture:
Only those elements are visible which start with the "home"
directory. Since the resulting elements are all located in the
"Downloads" directory, the new virtual directory directly shows this
directory as a path.
When pressing the left cursor key, Worker
will not change into "/home/ralf" which would be the direct parent
directory, but instead change back to the previous virtual directory
which contains all elements.
Some special navigation features are only issued by the double click action of the file type for the current entry. This includes changing into archives by using the VFS, or directly entering directories in a virtual directory. To use this action, press the Enter key or double click on the entry.
1.7. Breadcrumb navigation
The breadcrumb navigation bar makes it easy to access any part of the current directory hierarchy directly with one mouse click. Every path component is represented by a separate button.
When switching to the parent directory, the deepest path remains visible. It is possible to enter any sub-directory again by just clicking on the corresponding button.
The navigation bar can be enabled or disabled in the directory mode configuration (accessible by clicking on the "O" button).
1.8. Directory mode options
In the configuration dialog of the directory mode allows to modify settings specific to this mode. It includes settings for:- sorting
- filters
- display of free space
- watching directory updates
- finding entries by pressing a single key
- showing the ".." entry
- showing the breadcrumb navigation bar
The configuration can be accessed by right-clicking on the list view bar and selecting configure, or by clicking at the small configuration button next to the list view bar.
1.8.1. Sort settings
The sort settings allow to choose a sort mode for which each entry is sorted by. Also, it can be selected if the order shall be reverse and on what positions directories should appear. The values in parentheses indicate the character used in the LVB status section.
1.8.2. Filter settings
The filter settings defined on what attributes an entry is visible or hidden. Hidden files and the ".." entry can be chosen to be visible or not. Pattern-based filters can be defined and it can be chosen whether or not only bookmarked entries shall be visible.
The bookmark specific settings allow to display only entries with any or a specific label. Additionally, an option can be enabled to apply label colors also to all parent directories. This will make it easier to find bookmarked entries within sub-directories. This option can be overridden by individual labels. The filter configuration can also be changed with the "set filter" command.
1.8.3. Other settings
The other settings configure how the list view mode operates:
- Watch directories for changes: if enabled, Worker will use OS notifications to reload directories on changes automatically.
- Activate search mode when pressing keys: Alphanumeric keys not otherwise bound to a command will activate the search mode to filter
- Show breadcrumb navigation: Activates an additional button line above the list view to quickly navigation the directory hierarchy.
- Show free disk spaces: shows the free disk space in the LVB and configure the update period.
- Enable info line: activates an additional text line below the list view containing configurable information about the current file. See below for details.
- Use custom list view bar line: When enabled, the LVB content can be free configured, see below for details.
1.9. Info line
The info line below the list view can be used to show information about the current entry. The content of that line is configurable bz either simple flag replacement, or by using the LUA scripting language to generate the text to view. Example uses are to show the name and size of the entry and the destination, if the current entry is a symlink.1.9.1. Flag replacement without LUA
If LUA is disabled or not available, the string entered in the configuration will be parsed and some flags are replaced, similar to the external command.
The following table contains all available flags and their meaning:
Flag | Replacement |
---|---|
{f} | file name |
{F} | file name with full path |
{filetype} | file type |
{filesize} | file size in Bytes |
{symlink_dest} | destination of symbolic link (or empty) |
{user} | the user name of the owner of the file |
{group} | the group name of the owner of the file |
The default value is:
{f} {symlink_dest} ({filesize} bytes)which will look like:
foobar (123 bytes)or for a symlink:
foobar ../some/other/target (123 bytes)
1.9.2. LUA mode
For more advanced text generation, the LUA mode can be used. When enabled, the string is evaluated with LUA with some variables predefined and the returned string will be shown. By using conditions, the text can be modified more flexible then without LUA.
The following table contains all available variables inside the LUA command and their meaning:
Variable | Replacement |
---|---|
basename | file name |
fullname | file name with full path |
filetype | file type |
filesize | file size in Bytes |
symlink_dest | destination of symbolic link (or empty) |
is_symlink | boolean variable, true if entry is a symlink, false otherwise |
user | the user name of the owner of the file |
group | the group name of the owner of the file |
The default value is:
if ( is_symlink ) then return basename .. " -> " .. symlink_dest .. ": " .. filetype; else return basename .. ": " .. filetype .. " (" .. filesize .. " bytes)"; endwhich will look like:
foobar: text file (123 bytes)or for a symlink:
foobar -> ../some/other/target: text file
1.10. Custom list view bar line
The content of the list view bar can be freely configured by entering the content into the text field. The following flags are available which contain dynamic content:
- {indicators}: Contains the sort status, filter status, etc
- {modeinfo}: Contains generic information about the current list view mode (usually if the directory is real or virtual).
- {freespace}: Contains the current amount of free space on the device of the current directory (only if enabled)
- {cdi}: Contains the custom directory information from an arbitrary external command configured below
The custom directory information (cdi) is the output of an arbitrary external command which is configured in the corresponding text field. The text string can contain the following flags:
- {scripts}: This is the path to the scripts directory of the Worker installation for easy access to shipped example scripts.
- {p}: This is the current path of the directory
The "F" buttons allows to select a file from any directory to execution. The file select dialog opens in the scripts directory for quick access to the shipped example scripts.
The given command is executed on first load of a directory or any update. The command is run in the current directory and the first line of output is used for replacement of the "cdi" flag.
Example usage: Worker comes with an example script "cdi_get_current_vc_branch.sh" which outputs the branch name of the repository the current directory belongs to.
1.11. Synchronized scrolling
The Shift key can be pressed to scroll both list views simultaneously. Any scrolling (vertically or horizontally, with the mouse or the keyboard) will be applied to the inactive side as well. For that, the absolute position is set to the inactive list views so if for example the active list view is scrolled to row 10, the inactive list view will also display row 10. Due to some internal limitations, the update may only happen after releasing the key for scrolling or the mouse button.