应用程序启动器的标准

作者:Rui Anastacio

大多数 X 用户从 X 终端启动应用程序。为此,您必须知道程序的名称,每次运行程序时都传递参数,并将程序包含在搜索路径中。

除了从终端调用应用程序之外,您还可以使用应用程序启动器,这是一个显示已安装应用程序列表或菜单的程序,让您选择要启动的应用程序。有些启动器显示漂亮的图标,并且非常有吸引力,具有时钟、负载计量器等功能。

问题在于,每个启动器都有不同的方式来描述已安装应用程序的列表。通常,此信息以某种格式写入文本文件中。例如,FVWM 的启动器读取 .fvwmrc 文件以获取此信息。其他窗口管理器 (WM) 使用不同的格式和文件。如果您使用各种 WM,事情可能会变得有点混乱。

为应用程序启动器创建标准格式、位置和名称简化了创建、更改和交换信息的过程。另一个优点是在程序安装方面。安装过程可以读取此文件(开放格式和位置),并自动添加必要的条目以访问已安装的组件。例如,在安装 StarOffice 时,如果自动创建一个名为 StarOffice 的组,其中包含 scalc、swrite 和其余部分,那就太好了。

本文提出了此应用程序启动器文件的标准格式和标准位置,并介绍了 QStart,这是我用这种格式编写的启动器(使用 Qt 工具包)。

文件格式

该文件为纯 ASCII 文本,由两部分组成:配置参数和菜单定义。

第一部分用于定义参数,例如图标所在的目录。每行以保留关键字开头,后跟必要的参数,参数之间用分号分隔

ReservedWord param1;param2;...;paramN

仅定义了一个标准保留字,即 IconDir dir,其中 dir 是启动器在其中搜索菜单定义中引用的图标的目录。

可以为不同的启动器添加其他保留字。对于 QStart,我定义了一个额外的字(见下一节)。

例如,以下行可用于配置 QStart 在 /usr/local/icons 中搜索图标,并将弹出菜单的按钮放置在屏幕的 0,0 位置。

IconDir /usr/local/icons
Position 0;0

为避免将来出现问题,请仔细考虑是否添加新的保留字。我对标准字的看法是,这些字对于任何应用程序启动器都是绝对必要的。

随着新的启动器的出现,新的字也会出现。使用通用词语可能是一个好主意。以下是一些想法

  • ConfigFile file: 定义一个特定的文件用于额外的特定配置。

  • Show elem1;elem2;...: 在启动器中显示时钟或工作区,例如 Show Clock;WorkArea;IconsOnly

  • Style style: 使用不同的样式来显示应用程序列表,例如 Style Modern

为了跟踪未来的发展,我在 http://w3.ualg.pt/~ranasta/starter/ 建立了一个站点,以集中所有相关信息。

第二部分是菜单定义,语法相同:行首为保留字,后跟用分号分隔的参数。所有应用程序都在组或菜单内定义。主菜单的名称为“Main”,是起始点。菜单名称或 id 应以不区分大小写的方式解释;也就是说,编写“Main”、“MAIN”或“main”应具有相同的效果。保留字应以相同的方式解释。菜单定义的开始和结束是保留字 MenuEnd

Menu

在此,id 是菜单的名称,用于内部标识;idmain 的菜单是起始点。title 是菜单的标题,icon 是图标文件名。

MenuEnd 之间是菜单项

  • Separator: 绘制分隔符,通常是水平线。

  • Text text: 绘制 text

  • Image filename: 绘制存储在 filename 中的图像。

  • Program text;icon;command: 一个应用程序。text 是菜单项上显示的文本;icon 是关联的图标;command 是调用此选项时调用的命令。

  • SubMenu id: 指向菜单 id 的入口点。菜单 id 的标题和图标应作为此条目的数据出现。

此处显示了 Menu 块的两个示例

Menu Main;Applications;apps.xbm
 Program Terminal;xterm.xbm;xterm
 Program Editor;edit.xmb;nedit
 Separator
 Text Groups
 SubMenu Graphics
End
Menu Graphics;Graphics;graph.xbm
 Text Image
 Program GIMP;gimp.xbm;gimp
 Program Paint;paint.xbm;paint
 Separator
 Text Draw
 Program tgif;tgif.xbm;tgif
End
文件名和位置

为了让程序知道在哪里查找此文件,它必须具有标准名称和位置。名称为 .apps,位置按以下方式查找。首先,搜索主目录,以便不同的用户可以有不同的配置。接下来,搜索系统目录 /usr/local。这是所有用户的默认配置,可以由系统管理员管理。

QStart

我在 GUI 编程方面的大部分经验都来自 Motif、Xforms 和 TclTk。为了编写 Qstart,我选择使用 QT,因为它可用于多个平台,并且是一个强大的工具包。此外,通过选择 QT,我学到了一些新东西。

QStart 从标准位置读取 .apps 文件。主菜单的图标以按钮形式显示在屏幕上,位置由保留字“Position”指示。当您用鼠标左键按下此按钮时,将弹出应用程序菜单并显示列表。(见图 1。)按下鼠标右键会弹出配置菜单。此菜单具有“退出”和“重启”选项。“退出”只是退出;“重启”运行 QStart 程序(将其放在您的路径中),然后退出。当您更改 .apps 文件时,这些选项非常有用;调用重启会自动更新应用程序列表。

A Standard for Application Starters

图 1. 应用程序菜单

QStart 定义了以下保留字:Position x;y。这使用 x,y 作为屏幕上按钮的位置,该按钮弹出菜单。

Qstart 可以在存档文件 http://w3.ualg.pt/~ranasta/starter/qstart/qstart-1.0.tgz 中找到。这包括二进制文件和源代码。鼓励任何有兴趣的人使用此代码来构建更好的启动器。

未来

以下是关于未来的一些思考

  • 此文件的稳定格式

  • 使用此格式构建的新启动器——更漂亮、更高效等等。

  • 安装程序自动为已安装的组件添加条目

  • 创建一组例程,以方便安装程序查找、更改、添加和删除文件中的条目

  • 现有窗口管理器对此格式的支持

未来是未知的,但我们可以塑造它,或者至少尝试一下。

A Standard for Application Starters
Rui Anastácio 目前在阿尔加维大学高等技术学院教授数学和计算机科学,并将 Linux 用于他的部分工作。他的空闲时间花在网球、乒乓球、自行车、慢跑、功夫、游泳和其他运动上。他还喜欢好书、音乐、摄影、旅行和编程。可以通过电子邮件 ranasta@ualg.pt 与他联系。
加载 Disqus 评论