xfm 1.3

作者:Robert Dalrymple

使用文件管理器是一种个人偏好。一些硬核 Unix 用户更喜欢输入 Unix 命令(可能甚至不使用 GUI),而另一些用户则点击文件管理器,它接管了一些繁琐的文件操作。作为第一类人中的一员,在我看到 xfm 的实用性和灵活性之前,我一直避免使用文件管理器,xfm 是 Linux 的 Slackware 发行版附带的文件管理器之一(但您可能尚未配置它)。

xfm 不仅提供文件管理器的常用服务——允许插入、删除、复制和移动文件和目录,而且,此外,它的“应用程序”窗口允许您通过单击其图标来启动程序,就像 Windows 那样。

图 1 显示了一个示例文件管理器窗口,其中包含许多像素图图标(这使其看起来比 Slackware 附带的另一个管理器 Xfilemanager 好得多)。两个黄色文件夹图标表示目录。左上角带有箭头的目录文件夹可以双击以向上进入一个目录。另一个目录文件夹 (nextdir) 显示当前目录下方有一个目录。双击它会打开该目录。其他图标用于不同类型的文件(大约有 35 个不同的文件图标来区分以 ps、gz、tar、gif 等结尾的文件)。双击一个常规文件(白色的那个)会在您的编辑器中打开它,而其他操作与其他文件类型相关联:双击 PostScript (PS) 文件会在 ghostview 中打开它,单击 gif 文件会显示它。在文件图标上按下鼠标右键会弹出一个菜单,其中包含编辑、移动、删除、信息和权限,每个选项都会打开一个对话框以获取(或包含)更多信息。这些菜单选项都是不言自明的。

文件管理器窗口顶部的三个按钮,FileFolderView,具有下拉菜单。“File”按钮下有许多选项,包括全选和删除,这两种操作的组合将清空一个目录。“Folder”下有创建新目录或直接转到新目录的选项,这样您就不必单击整个目录树从上到下,追逐文件夹图标。“Home”也是一个方便的选项。“View”更改文件管理器中的文件显示——文件可以按名称列出(很像 ls -l 列表),而不是使用图标。可以显示目录树的一部分,或者您可以选择显示隐藏文件。

要在目录之间移动文件,方便的做法是打开多个文件管理器窗口——每个您正在使用的目录一个——方法是在文件夹上单击鼠标右键——这次我们得到了一个新的菜单,允许打开、移动、删除、信息和权限,因此我们选择了打开。或者我们可以将目录文件夹从文件管理器拖到根窗口并释放。移动过程只需用鼠标左键选择一个文件,然后将该文件从一个目录窗口拖到另一个目录窗口即可。要复制文件,您可以使用鼠标中键执行相同的操作。(注意:文件必须在不同的文件系统之间复制,而不是移动,否则您会收到跨设备错误。)

与文件管理器窗口一起提供的应用程序管理器可以使用您经常使用的应用程序进行配置——而且不仅仅是一个窗口,您可以使用工具包方法更改为不同的配置。稍后会详细介绍。

我的“应用程序”窗口中的一些图标(请参阅 图 2)执行以下操作:双击 Xterm 图标会弹出一个带有滚动条和 tcsh 的 color_xterm,而将可执行程序从文件管理器窗口拖放到 Xterm 图标上会执行该程序。每个图标可以有两个操作——一个用于双击,一个用于拖放。将文件拖放到垃圾桶会将它们移动到一个名为 .trash 的目录中,以便稍后处理。将 PostScript 文件拖放到 PSPrinter 图标上会打印它们。

设置

键入 xfm.install(xfm 附带的程序)将在您的根目录中添加目录 .xfm 和 .trash,并将几个配置文件放在 .xfm 中。然后您可以修改这些文件以优化程序以适合自己。这些配置文件包括 xfmrc(一个将文件类型与图标和操作关联的文件)和 xfm-apps(一个列出应用程序管理器中出现的应用程序和图标以及相关的双击和拖放操作的文件)。xfmdev 是设备(磁盘驱动器/CD)以及 mount 和 umount 命令的列表(请参阅“Linux 技巧”,Linux Journal,1995 年 4 月第 41 页)。最后,对于您希望添加的每个额外的“工具箱”,都有一个文件。

xfm 附带的 man 手册写得非常好,并且对其使用进行了明确说明。在进行任何更改之前,请务必阅读它。

配置文件管理器

许多双击/拖放操作已在 xfmrc 中根据以下格式预先配置

file_name:icon:push-action:drop-action

Xfm 通过三种方式识别文件名:按文件名本身(例如,core 或 Makefile)、按其扩展名(*.c 表示 c 源文件)或按其前缀(README*)。用于 file_name 的最常见模式是 *.suffix,为了让它识别 C 文件,即 *.c,其中 * 允许识别任何以 .c 结尾的文件名。push-action(通过双击图标激活)是您最有可能在 xfmrc 文件中更改的内容。例如,我将 *.gif 文件上的 push-action 更改为 xv 而不是 xpaint。我还添加了

*.au:xfm_au.xpm:cat $* >/dev/audio:
*.dat:xfm_data.xpm::

第一个在双击时播放 au 文件(音频文件)(如果您尚未配置声音,请阅读 Sound HOWTO),而第二个只是将 xfm_data 图标与我为可执行程序创建的数据文件关联起来。

拖放操作是指当文件被拖到图标上时发生的操作。我没有为我的文件管理器窗口定义任何拖放操作。

配置应用程序管理器

构成应用程序管理器的程序和图标由 xfm-apps 文件决定。该文件中的条目具有稍微不同的形式

name:directory:filename:icon:push-action:drop-action

name 是出现在“应用程序”窗口中的标题,icon 是要使用的图标的名称,push-action 是在双击图标时要执行的操作,drop 是当文件被拖放到图标上时发生的操作。一个简单的例子是

PSPrinter:::printer.xpm::exec lpr $*

双击此打印机图标不会执行任何操作,而从文件管理器窗口将 PostScript 文件拖放到其上会导致文件被打印。此文件中剩余的条目如下所示

Xterm:::xterm.xpm:exec color_xterm -sl 600 -sb -fn
*     7x14 -j -ls -e tcsh:$*
Xclipboard:::clipboard.xbm:exec xclipboard:
Scilab:::math4.xpm:exec scilab:
Graphics::.xfm/xfm-graphics:xfm_appmgr.xpm:LOAD:
System::.xfm/xfm-system:xfm_apps.xpm:LOAD:
Calendar:::calendar.xpm:exec xcalendar:
CD:/cdrom::cdrom.xpm:OPEN: (*This line should not be broken)

Toolbox、Graphics 和 System 是将“应用程序”窗口更改为另一个包含不同应用程序图标集的图标。例如,我使用 xfm-apps 中的以下条目制作了一个简单的图形工具箱

Graphics::.xfm/xfm-graphics:xfm_apps.xpm:LOAD:

LOAD 命令加载下面的 .xfm/xfm-graphics 文件

Apps::.xfm/xfm-apps:xfm_apps.xpm:LOAD:
XFig:::draw.xpm:exec xfig: exec xfig -P -e ps -startf 16 $*
XPaint:::xpaint.xpm:exec xpaint:exec xpaint $*
XV:::xv.xpm:exec xv:exec xv $*
mpeg:::movie.xpm::exec mpeg_play -loop $*

Apps 行让我回到上一个窗口:xfm-apps。

在另一个应用程序文件 System 中,我在 .xfm/system 中有

Apps::.xfm/xfm-apps:xfm_apps.xpm:LOAD:
Xsysinfo::::xsysinfo:
TOP::::exec xterm -e top:
who:::view.xpm:exec who|xless:
lpq::::exec lpq |xless:

通过将最后两个命令通过管道传递到 xless,将创建一个 xwindow,显示 Unix 命令的结果。

对话框允许输入命令行参数,例如

LaTeX::::(latex %Latex_file\:%;beep):(latex $*;beep)
grep:::grep.xpm::grep '%Regular expression\:%' $*

百分号分隔对话框的注释(使用 \ 转义 :)。蜂鸣声是为了告诉我操作何时完成;它被定义为 echo -n '^G'

更改默认设置

如果您喜欢使用 emacs 以外的其他默认编辑器,则需要在根目录的 .Xdefaults 文件中添加一个条目。xfm man 手册列出了您可以更改的资源。我更改了两个,添加了 Xfm*defaultEditor: texteditXfm*updateInterval: 3000。(如果您希望在下次启动 X 之前实现这些更改,请务必运行 xrdb .Xdefaults。)更新间隔更改是为了比默认的 10000 毫秒更频繁地刷新目录。您还可以更改像素图文件的默认目录路径;如果您的像素图不在默认位置,这可能很重要(添加 Xfm*pixmapPath: your_path 或者,要为所有用户进行更改,root 可以更改 /usr/X386/lib/X11/app-defaults 中的 Xfm 文件中的选项。

关于 Xfm

Xfm 由 Simon Marlow 创建,他将其维护到 1.2 版本。Albert Graef 制作了当前版本,修复了一些错误并添加了像素图。(他还慷慨地审阅了这篇文章,对其进行了改进)。当您阅读本文时,1.3.2 版本应该可用,它具有诸如识别“magic”文件类型(除了现在在 xfmrc 中指定的那些类型之外)以及更好地管理应用程序组等功能,例如在应用程序管理器中安装应用程序组,在应用程序文件之间剪切/复制/粘贴,以及文件管理器的视图选项(除了编辑之外)。

获取 xfm-1.3

Robert Dalrymple (rad@coastal.udel.edu) 在特拉华大学工作。他在家庭和工作中使用 Linux。www.coastal.udel.edu)

加载 Disqus 评论