XFM - The X File Manager (ver 1.3.2) ------------------------------------ (c) Simon Marlow 1990-1993 simonm@dcs.glasgow.ac.uk (c) Albert Graef 1994, 1995 ag@muwiinfa.geschichte.uni-mainz.de This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ------------------------------------------------------------------------------ This is a powerful file and applications manager program written using the X toolkit. It contains virtually all of the features that you would expect in a file manager -- move around your directory tree in multiple windows, and move, copy or delete files with simple mouse operations. Directory displays are updated automatically in regular intervals when the contents of a displayed directory changes. The integrated application manager allows you to load files into your favourite applications from the file manager by dragging icons. It can also be used as a "shelf" onto which you can place files and directories you are currently working with. A special LOAD action for application files enables you to manage different application groups. User-definable file types allow you to specify a command to be executed when double-clicking on a file or dropping other files onto it. The command can also prompt you for required parameters. Xfm makes it easy to configure special kinds of actions such as, e.g., replacing the contents of a compressed tar archive with a collection of selected files. A lot of corresponding examples can be found in the distribution, including a fully functional trashcan feature. Last not least, xfm can automatically mount and unmount special devices like floppies as you open and close the corresponding directories (mount points). So you won't have to fiddle around with mount or mtools commands any more if all you want to do is copy some files between the hard disk and your floppy drive. The original version of this program was written by Simon Marlow at the University of Glasgow. I included Simon's README for reference purposes; see README-1.2. [Most of the information in this file is outdated; please refer to this README file and the man page for up-to-date installation and usage instructions.] Release 1.3 stems from my efforts to resolve some nasty bugs in the 1.2 beta version distributed with Linux slackware, and to add XPM support for displaying color icons in the file and application windows. As it came out, I also added a plethora of other features to make xfm the tool I was looking for; see the ChangeLog for details. Realizing that my private xfm version might be useful for others as well, I contacted Simon and he told me to put together a new release and make it available on the net. So here it is! I hope you will find it as useful as I do -- I am now using xfm regularly, and can't imagine how I ever did without it. I think that this program compares well to other free -- and even commercial -- file managers. It is fast, convenient to use, and offers a lot of built-in functionality and configuration options. If you are not addicted to the shell and like to shuffle around files with one hand in order to perform tasks such as moving, copying, deleting, compiling, formatting, archiving, compressing, etc. etc., then xfm is certainly for you. Release 1.3.1 adds an automatic shell detection feature, which has been contributed by Robert Vogelgesang (vogelges@rhrk.uni-kl.de). We hope that this transparently fixes the problems with different shell argument passing conventions which have been encountered with release 1.3. The configuration files supplied with the package should now work with any popular shell -- if not, set the new X resource Xfm.BourneShells; see the man page for details. Release 1.3.2 adds a bunch of new features; the most important are listed below: * Improved support for creating symbolic links. The Link option now works completely analogous to the Copy option; in particular, it is now possible to create links for a selected set of files in a specified directory. * Rearranging items in the application window, which used to be a pain in earlier releases, is now a lot easier. Items in the application window can now be moved and copied using drag and drop, and cut/copy/paste gives a convenient way to move entries between different application files. There also is a new option for installing application groups, and the Back and Main buttons allow to navigate in the application group tree. * "Magic headers," contributed by Juan D. Martin (juando@cnm.us.es). With this feature it is now possible to identify file types by their mode and contents in addition to the filename patterns. This is implemented using a "magic" file format (see magic(5)) with some important extensions like mode checking and regular expression matching. It also allows you to specify custom icons for directories and executables in file windows. A sample magic file is included. Also, Juan wrote a tiny program named xfmtype which lets you determine the xfm magic type of a file. * A Filter option for the View menu, contributed by Kevin Rodgers (rodgers@lvs-emh.lvs.loral.com). This nice function allows you to restrict the set of files displayed in a file window -- for instance, only display *.c files. * A View option for the file popup menu (accompanied by a VIEW action which can be used in push actions), contributed by Scott Heavner (sdh@falstaff.MAE.cwru.edu). This option works analogous to the Edit option, but invokes a program for viewing a file (e.g. xless, available from ftp.x.org). * Default values in parameter dialogs, contributed by Brian King (ender@ee.WPI.EDU). Using the %parameter--value% notation, you can now specify default values for parameters in push and drop actions. * Lots of new icons, and a new set of standard config files. Juan D. Martin has compiled a comprehensive collection of fileicons. Take a look at the contrib/fileicons directory. * Besides this, I cleaned up the source tree, fixed some bugs, overhauled Imakefiles and added an "Imake.options" file for easier customization. Thanks to all who reported bugs and contributed patches! INSTALLATION ------------ As distributed, xfm is set up to work with Arnaud Le Hors' XPM library. It can still be compiled and run without this library, if you comment out the #define XPM in Imake.options, but then you will have to edit the configuration files (xfmrc, Apps, etc.) to replace the pixmap icons by bitmaps (a few are supplied in the bitmaps directory). Versions of the XPM library less than 3.3 appear not to work. Other options which can be controlled by corresponding #define's in Imake.options are XAW3D (which causes linkage with the Xaw3d library, and also adds some Xaw3d-specific lines to the applications default file) and MAGIC_HEADERS (which causes the magic headers code to be included, and also determines the standard xfmrc file to be installed on your system). XAW3D is disabled, MAGIC_HEADERS enabled by default. Xfm 1.3 has been reported to compile and run successfully under Linux 0.99-1.1.91, BSDI 1.1, RS6000 with AIX 3.2.5 (using gcc), SUN workstations running SunOS 4.1 and Solaris 2.3, HP700 with HPUX 9.01, DECstation with Ultrix 4.3a, DEC Alpha with OSF/1, SGI Indigo with IRIX 4.0.5F and 5.2. I hope I didn't break this with the current release. We are still interested in getting Xfm compiled on as many platforms as possible (porting should be a piece of cake), so please continue to send us any patches so that they can be included in future releases. NOTE for SUN users and other people running ol[v]wm: In order to get double clicks in xfm working, you may have to set olwm to the "focus-follows-mouse" (rather than the "click-to-focus") mode. This can be done by setting the SetInput resource to followmouse in your .OWdefaults file (see props(1)). In click-to-focus mode double clicks in xfm won't work. I consider this a bug in olwm, but if anybody has a fix to get double clicks working in click-to-focus mode I'd like to hear about it. ------------- To customize the Imakefiles according to your preferences and your system, edit the file "Imake.options" at the top level of the distribution. This file is included by the different Imakefiles so that you usually won't have to edit the Imakefiles themselves. To build/install the software do the following: xmkmf && make Makefiles && make && make install && make install.man Of course, if you already have an xfm version >=1.3 running on your system, you might find it more convenient to execute an equivalent of the above from xfm. ;-) NOTE: When upgrading from xfm-1.3 or xfm-1.3.1, you might wish to back up your old set of config files before installing the new files. Then, after having generated the Makefile with xmkmf, issue a `make uninstall' to remove the old installation before you do the `make install'. Release 1.3.2 includes a lot of additional icons (see ICONS). Unfortunately I had to rename a few icons, so you may have to edit your old configuration files if you want to reuse them with the new release. If everything goes smoothly, you should have an xfm binary installed in your X bin directory, along with some other stuff (note the directories may not be identical on your system, it is up to Imake to install these things in the correct place): /usr/X11/bin/xfm.install The user installation program /usr/X11/lib/X11/xfm/ bitmaps Some example bitmaps pixmaps Some example pixmaps dot.xfm Default config files (for xfm.install) /usr/X11/lib/X11/app-defaults/Xfm application defaults for xfm /usr/X11/man/man1/xfm.1 the manual page If everything didn't go smoothly, you may have to make xfm in the src subdirectory separately, and/or install things by hand. To complete the installation, you will probably wish to edit the default configuration files and the application defaults file to reflect your local configuration. Also you might wish to manually install additional icons and other stuff from the contrib dir. Good luck! :-) ICONS ----- Xfm comes with a basic collection of bitmap and pixmaps icons from various sources on the net, including icons from Linux slackware, the X desktop manager (xdtm), the 0.91 beta release of the G.R.E.A.T. environment and the AIcons collection. Be warned that I had to edit some of these icons to be able to display them on my Linux box which only runs a 16 color X server. Therefore many of the icons aren't as colorful as could be. A comprehensive set of both bitmap and pixmap fileicons has been collected and edited for use with xfm by Juan D. Martin (juando@cnm.us.es). To install these, simply copy the files in contrib/fileicons/{bit,pix}maps to the {bit,pix}maps directory in your xfm libdir, or some other directory specified with the {bit,pix}mapPath resource. You should also install the modified xfmrc file in the contrib/fileicons directory which makes use of the new icons. Tons of other icons can be found on the net. For instance, take a look at the AIcons collection or pixmaps.tar.gz, both in the R5contrib directory on ftp.x.org. You might also consider to install the xbmbrowser program written by Ashley Roll and Anthony Thyssen (also on ftp.x.org), if you haven't done this already. STANDARD SETUP -------- ----- The standard setup (files in the lib directory) consists of the magic and xfmrc files for common filetypes, a sample xfmdev file (specifying how special devices like floppy disks are mounted and unmounted), and a set of useful application files. It is intended as a starting point for developing a personal setup which fits your taste and requirements. Currently the following standard application groups are provided: * Apps -- the main group. It contains entries for common applications, namely a shell tool (xterm), two different editors (emacs and OpenLook textedit), a mailtool (xmailtool), a calculator (xcalc), a manpage reader (xman), a DVI previewer (xdvi), WWW and news readers (mosaic and xrn), and the printer (lpr). The group also contains entries for loading the Toolbox, Graphics and Hosts groups (see below). Two entries, Home and Root, are used to open a window on your home and the root directory, respectively, while the sample A: and B: entries will be used to open file windows on the corresponding disk drives (you may have to edit these entries, as well as the xfmdev file, to reflect your system setup). The Trash entry implements a simple trashcan feature using GNU mv (see TRASHCAN, below). * Toolbox -- a collection of common utilities. It contains entries for starting up a debugger (xxgdb), make (dropping a makefile prompts you for the target), and various archiving and compression utilities. Furthermore, it provides an interface to the grep and find utilities (you might wish to replace these by appropriate X utilities if you have them available). * Graphics -- graphics utilities. The standard setup includes entries for ghostview, xfig, xv, xpaint, xbmbrowser, bitmap and pixmap. * Hosts -- access to the network. This group contains two sample entries, one for invoking a remote xterm in your local network (you should edit this entry to specify a hostname), and one for opening an ftp connection to ftp.x.org. You should inspect the entries in the application groups as well as the xfmrc file to find out exactly which push and drop actions are implemented. Contributions are always welcome. If you have any nifty icons or interesting entries for the magic, xfmrc and application files, please send them to me so that I can include them in future releases. TRASHCAN -------- As I already mentioned, the standard setup includes a simple but useful trashcan feature. The corresponding line in the Apps applications file reads as follows: Trash::.trash:trash.xpm:OPEN:shift; mv -f -b -V numbered $* ~/.trash This line causes xfm to open a new window on the trashcan directory (.trash in the user's home directory) when double-clicking on the trashcan icon in the application window. This allows you to empty the trashcan, restore files, etc., by employing xfm's usual move/copy/delete operations. The second action is invoked when a collection of selected files is dropped onto the trashcan icon; it moves the selected files to the .trash directory. The "-b -V numbered" options of GNU mv are used to create numbered backup copies of files already present in .trash, instead of simply overwriting them. If you don't have GNU mv, you can omit these options (be aware that then files in .trash will be overwritten without notice) or replace the mv command with a shell script which creates the necessary backup copies before it invokes mv. Enjoy! Albert Graef ag@muwiinfa.geschichte.uni-mainz.de