XFILE(1)

NAME
xfile - graphical file manager.

SYNOPSIS
xfile [OPTIONS] [DIRECTORY]

xfile-open FILENAME...

DESCRIPTION

XFile is a file manager for Unix systems running X11.

  Options

+/-a
    Ignore/show file names starting with a dot.

-f <glob pattern>
    Hide files matching glob pattern specified. Prefix the pattern with the ! character to negate.

-l  Toggle view mode (see viewMode resource).

-r  Invert sort direction (see sortDirection resource).

-s(n|s|t|f|x)
    Specify sort order: name, size, time, file type, suffix.

  Arguments
XFile will display current working directory if invoked without arguments.

If invoked as xfile-open (through a symbolic link), XFile will match each file name specified against the file type database, run the default action if defined, and finally quit.

USER INTERFACE

  Directory View
The directory view is navigated either with the pointer or arrow keys. For both, the Shift modifier key is utilized for extending a selection, the Ctrl for adding and subtracting selected items. When navigating using arrow keys with the Ctrl modifier depressed, only the focus rectangle is moved, allowing to add focused items to the selected set by pressing the Spacebar key.

Enter executes the default action for the selected item. Spacebar toggles the selection. Backspace changes to the parent directory.

Typing into the directory view will select the next matching file name. Incremental search will be reset after a few seconds, or when the key bound to osfCancel (typically Esc) is pressed (see the FileList widget lookupTimeout resource).

By default, icon size is deduced from label font height. This can be controlled with the iconSize resource. Custom icons may be installed in .xfile/icons user's home sub-directory (see also the FILES section). If an icon specified in the type database cannot be found, a built-in, generic icon will be used instead.

  Pasting Selections
The primary X selection is utilized for file transfer. When one or more files are selected in an XFile window, these may be pasted in another with the Edit > Copy Here and Edit > Move Here menu commands.

XFile owned selection may also be pasted as a list of space separated file names in an application/widget that requests plain-text data, such as terminal or text editor.

  Mount Points
For mount points, Mount/Unmount action will be displayed in the context menu. Depending on system configuration, alternate un/mount command may be specified (see mountCommand, unmountCommand), or disabled (see userMounts).

XFile may be configured to utilize a user mount daemon that manages a "media" directory (see mediaDirectory, mediaMountCommand, mediaUnmountCommand X resources).

  File/Context Menu
Actions defined in the file type database appear first in File/Context menus, in the order they were defined. First action in the list is the default - that is, it's being run whenever an item in the list is activated.

  Tools Menu
XFile features a drop-down menu for user defined tools. The Tools menu will be displayed once content is added to it using X resources as follows:

XFile.tools.<tool name>: <command>

The command string may contain following context dependent variables:

%n	Selected file name(s).
%p	Current directory (CWD).
%u	User specified parameters (an input dialog will be shown).

Environment variables may also be specified using sh syntax.

To set standard Motif resources, such as label string, mnemonic, position and accelerators, menu item widgets (see XmPushButtonGadget(3)) in the Tools menu may be referred to as XFile.mainMenu.toolsMenu.<tool name>. Most relevant resources are listed below.

labelString	String
mnemonic	Character
acceleratorText	String
accelerator	KeySym
positionIndex	Integer

FILE TYPE DATABASE

A file type database is a plain text file comprised of one or more records. See FILES section in this manual for database file locations.

A record starts with a type name string, consisting of alpha-numeric characters that may contain spaces, followed by an opening bracket { on the same or following line, and ends with a closing bracket } on a separate line.

Within record's scope, properties and matching patterns are specified as name/value pairs.

Comments may be specified following the # character.

  Record Fields

icon <string>
    Specifies icon name to be displayed for this file type.

mime <string>
    Specifies MIME type. This is not used internally, but is accessible through a context dependent variable %m.

match_name <glob pattern>
    One or more glob patterns† to match the file name against.

match_content #<offset> <data>
    One or more data patterns† to match file contents against.

action <name>: <command>
    Action to be displayed in the file context menu. Any character in the name may be prefixed with & to specify a mnemonic. Literal & may be specified using the \ escape character.

† Multiple values may be specified for file name and content patterns, - one per line - within a scope delimited by an opening bracket { on the same or following line, and a closing bracket } on a separate line.

  Variable Expansion

Unix shell like variable expansion is supported in action command strings.

XFile local and context dependent variables start with the % character, while environment variables start with $. The sh syntax ${...} and respectively %{...} is also supported.

Local variables are defined using X resources in form:
XFile.variable.<name>: <value>

Substitute name with the variable name of choice, and value with the value desired.

  Context Dependent Variables

%n	File name of the selected item.
%p	Path name of the selected item (working directory).
%m	MIME string (if specified in the database).

  Predefined Variables

The default database makes use of several predefined variables listed below. These may be set in user's .Xresources (see Variable Expansion above) to accommodate the environment, without modifying the database.

terminal, textEditor, webBrowser, imageViewer, imageEditor, audioPlayer, videoPlayer.

NOTE:
    The terminal command must treat all arguments passed to it as a list of commands and their respective arguments to be executed (it defaults to xterm -e)

RESOURCES

  General Resources

In addition to standard X and Motif toolkit resources, following resources are used by XFile.

appNameInTitle Boolean
    Show application name (XFile) in the title bar if True, only current directory name/path otherwise. Default is False.

confirmRemoval always|multiple
    Controls whether file removal actions must be confirmed by the user. If set to always, the user is prompted before every removal, if set to multiple the user is prompted when removing more than three files, or a directory. Default is always.

defaultPath String
    Specifies the default startup path if none was specified on the command line. Default is the current directory.

duplicateSuffix String
    Specifies the default suffix used to construct suggested names for duplicates. Default value is .copy.

filterDirectories Boolean
    If True, filter pattern (see the -f option and the View->Filter... menu item) will also affect directories, files only otherwise. Default is False.

fullPathInTitle Boolean
    Show full path to the current directory in the title bar if True, only current directory name otherwise. Default is False.

historyMaxEntries Integer
    Specifies the maximum number of entries to be stored in history. Default is 8.

iconSize auto|tiny|small|medium|large
    Sets the size of icons displayed in the file list. Default is auto, in which case the size is deduced from font height.

mediaDirectory String
    Specifies a mount daemon managed directory, if any (typically /media/$LOGNAME). Environment variables in sh syntax will be expanded accordingly. This resource is not set by default.

mediaMountCommand
    Specifies a mount daemon specific command to mount mount-points within the daemon managed media directory (see mediaDirectory). It is expected to take one argument (the mount point path), and return zero on success. If it returns non-zero, anything it prints to stderr will be captured and displayed in a message box. This resource is not set by default.

mediaUnmountCommand
    Specifies a mount daemon specific command to unmount mount-points within the daemon managed media directory (see mediaDirectory). It is expected to take one argument (the mount point path), and return zero on success. If it returns non-zero, anything it prints to stderr will be captured and displayed in a message box. This resource is not set by default.

mountCommand String
    Specifies the command to be used to mount entries from fstab. It is expected to take one argument (the mount point path), and return zero on success. If it returns non-zero, anything it prints to stderr will be captured and displayed in a message box. Default value is "mount".

unmountCommand String
    Specifies the default command to unmount mount-points. It is expected to take one argument (the mount point path), and return zero on success. If it returns non-zero, anything it prints to stderr will be captured and displayed in a message box. Default is "umount".

userMounts Boolean
    If True, Mount/Unmount entries will be shown in the context menu for mount points. Default is True.

pathField Boolean
    If True, the path field will be shown in the main window. Defaults to True.

refreshInterval Integer
    Specifies the interval in seconds at which xfile should check for changes within the current directory. Default is 3 seconds.

statusField Boolean
    If True, the status field will be displayed in the main window. Defaults to True.

showAll Boolean
    Show all files (including ones starting with dot) by default. This option may be inverted using command line parameters. Default is false.

userDatabaseOnly Boolean
    If True, only user ($HOME/.xfile/*.db) file type database is parsed, default database is ignored. Default is False.

variable.name String
    Defines a local environment variable used by the file type database (see the FILE TYPE DATABASE section on variable expansion) for command String expansion.

  File List Widget Resources

The file list widget is the central element of the XFile window. It displays directory contents and provides interaction functionality.

The class name of the widget is FileList, the widget name fileList. Aside from resources described below, the widget inherits resources from XmPrimitive(3).

autoScrollSpeed Integer
    Specifies auto-scroll speed (when performing rectangular selection and the mouse pointer is moved beyond an edge of the view). Must be an Integer between 1 and 10. Default is 3.

caseSensitive Boolean
    If True, character case will be taken into account when sorting files, which results in uppercase file names to be grouped separately. Default is False. See also CAVEATS.

doubleClickInterval Integer
    Specifies the double-click interval in milliseconds.

dragOffset Dimension
    Specifies the number of pixels the cursor must move while the primary button is pressed to engage "drag" action (e.g. rectangular selection). Default is 4.

selectColor Color
    Color to be used to draw the background of selected items.

horizontalSpacing Dimension
    Specifies horizontal spacing between list items. Default is 2.

labelMargin Dimension
    Specifies the amount of space between the icon an the label of list items. Default is 2.

labelSpacing Dimension
    Specifies the amount of space between columns in detailed list view. Default is derived from font size used to render the text.

lookupTimeout integer
    This resource specifies the amount of time in seconds before incremental search is reset. It may also be reset by pressing the key bound to osfCancel (Escape by default).

marginWidth Dimension, marginHeight Dimension
    Specifies the amount of space between edges of the list view and displayed items. Default is 2.

outlineWidth Dimension
    Specifies the width of the selection outline. Default is 1.

shortenLabels Integer
    Specifies length in characters for file name labels at which these will be abbreviated. The value of zero disables label shortening. The minimum value allowed is 12.

sortDirection ascend|descend
    Specifies the file name sorting direction of displayed items. Default is ascend.

sortOrder name|time|suffix|type|size
    Specifies the sorting order of displayed items. Default is name.

silent Boolean
    Specifies whether audible feedback is disabled for item look-up. Default is False.

numberedSort Boolean
    Specifies whether coinciding strings of digits in file names should be compared numerically, so that numbered files will be listed in the order expected. Default is True. See also caseSensitive and CAVEATS.

viewMode compact|detailed
    Specifies the view mode. Default is compact.

  File List Widget Fonts

The file list widget defines four rendition tags to display labels for different kinds of Unix file types:

regular	Regular files
special	Special files (devices, pipes, etc.)
directory	Directories
symlink	Symbolic links

By default, labels of symbolic links are rendered in italic and special files in bold.

  FileList Widget Translations

Activate()
    Activates the selected item. Default bindings are:
    <Key>Return:	Select() Activate()
    <Key>osfActivate:	Select() Activate()

DirectoryUp()
    Change to parent directory.† Default binding:
    <Key>osfBackSpace:	DirectoryUp()

Delete()
    Delete selected item.† Default binding:
    <Key>osfDelete:	Delete()

MoveCursor(Up|Down|Left|Right|Begin|End, [Extend])
    Moves the cursor (focus rectangle), one row or column into the direction specified, or to the first or last item in the list. Starts or extends a selection if Extend is specified. Default bindings are:
    <Key>osfLeft:	MoveCursor(Left) Select()
    <Key>osfRight:	MoveCursor(Right) Select()
    <Key>osfUp:	MoveCursor(Up) Select()
    <Key>osfDown:	MoveCursor(Down) Select()
    <Key>osfBeginLine:	MoveCursor(Begin) Select()
    <Key>osfEndLine:	MoveCursor(End) Select()
    Ctrl<Key>osfLeft:	MoveCursor(Left)
    Ctrl<Key>osfRight:	MoveCursor(Right)
    Ctrl<Key>osfUp:	MoveCursor(Up)
    Ctrl<Key>osfDown:	MoveCursor(Down)
    Ctrl<Key>osfBeginLine:	MoveCursor(Begin)
    Ctrl<Key>osfEndLine:	MoveCursor(End)
    Shift<Key>osfLeft:	MoveCursor(Left, Extend)
    Shift<Key>osfRight:	MoveCursor(Right, Extend)
    Shift<Key>osfUp:	MoveCursor(Up, Extend)
    Shift<Key>osfDown:	MoveCursor(Down, Extend)
    Shift<Key>osfBeginLine:	MoveCursor(Begin, Extend)
    Shift<Key>osfEndLine:	MoveCursor(End, Extend)

PrimaryButton(Down|Up, [Extend])
    Primary mouse button handler. Focuses (Down) and selects (Up) the item under the pointer, adds it to existing selection if Extend is specified. Activates the item on double-click. Default bindings are:
    <Btn1Down>:	PrimaryButton(Down)
    <Btn1Up>:	PrimaryButton(Up)
    Shift<Btn1Down>:	PrimaryButton(Down, Extend)
    Shift<Btn1Up>:	PrimaryButton(Up, Extend)
    Ctrl<Btn1Down>:	PrimaryButton(Down, Add)
    Ctrl<Btn1Up>:	PrimaryButton(Up, Add)

PrimaryButtonMotion()
    Primary mouse button motion handler. Activates the rectangle selection mode. Default binding:
    <Btn1Motion>:	PrimaryButtonMotion()

SecondaryButton()
    Displays the context menu. Default binding:
    <Btn3Down>:	SecondaryButton()

Select([Toggle])
    Selects the focused item, toggles if Toggle is specified. Default binding:
    <Key>space:	Select(Toggle)

† While not being a part of widget's functionality, these translations are provided by the widget for the convenience of being able to assign keys that would interfere with text input in other widgets if used as global menu accelerators.

  Path Field Widget Resources

The path field widget consists of a text field that displays the current working directory with an array of push buttons above it, each representing an element of the path.

The class name of the widget is PathField, the widget name pathField. Aside from resources described below, the widget inherits resources from XmManager(3).

It is a composite widget consisting of an XmTextField for the text part, XmDrawnButton for each path component, and also XmDrawnButton for the Up button. Resources for these components can be set individually, with following exceptions: renderTable, shadowThickness, marginWidth, marginHeight and geometry resources, because these are enforced by the manager widget. Widget names for the text field and the Up button are pathInput and upButton, respectively. All path component buttons share the name pathPart.

buttonHeight Integer
    A value in percent that sets the vertical size of path element buttons relative to the height of the font used to draw text in the widget. Default is 100.

compactPath Boolean
    If True, the $HOME part of the path will be represented by a tilde. Default is True.

showUpButton Boolean
    A push button that changes to the parent directory will be shown in the right corner of the path widget if this resource is set to True. Default value is True.

  Progress Widget Resources

The class name of the widget is Progress, the widget name progress. Aside from resources described below, the widget inherits resources from XmPrimitive(3).

highlightColor Pixel
    Specifies the fill color for the completed part of the bar.

FILES

User file type database files are read from the $HOME/.xfile/types/ directory. System file type database files are installed in PREFIX†/share/xfile/types directory.

Icons in XPM (X Pixmap) format are looked for in user $HOME/.xfile/icons and system PREFIX†/share/xfile/icons directories.

XFile stores some state information in the $HOME/.xfile directory. Files in the history sub-directory contain prompt history, and can be safely deleted.

†Platform dependent. (/usr on GNU/Linux, /usr/local on FreeBSD etc.)

CAVEATS

1. There is no xattr handling as of now.

2. The FileList widget ignores LC_COLLATE locale setting if caseSensitive and/or numberedSort are True.

AUTHORS

XFile was written and is maintained by alx@fastestcode.org