Linux 上的 GNOME 2.2 桌面系统管理指南

第 2 章 定制菜单

本章介绍 GNOME 桌面如何实现菜单以及您可以如何定制菜单。

菜单简介

GNOME 桌面实现菜单的方式允许您进行以下操作:

GNOME 桌面上的菜单使用以下组件:

文件抽象层

gnome-vfs 文件抽象层为应用程序与文件进行交互提供了一个简单、通用的方法。 文件抽象层还提供映射到特定菜单配置文件的统一资源标识符 (URI) 位置。 要为所有用户添加菜单或菜单项,必须将菜单或菜单项添加到某个 URI 位置。 表 2–1 列出了可以添加菜单项的菜单以及与菜单相对应的 URI 位置。

表 2–1 菜单和 URI 位置

菜单 

URI 位置  

所有用户的应用程序菜单

applications-all-users:///

所有用户的首选项菜单

preferences-all-users:///

虚拟文件夹和菜单

一般而言,vfolder 是系统上一个或多个实际位置的菜单项的虚拟表示形式。 例如,一个 vfolder 可以表示几个目录的内容。 vfolder 是一个或多个物理位置的抽象表示。 就 GNOME 桌面中的菜单而言,vfolder 表示实际可能位于几个目录中的属于同一个菜单的菜单项。

vfolder 信息文件是描述 vfolder 的一个 XML 文件。 Vfolder 信息文件指定菜单结构。 它指定菜单名称及应用程序在菜单中出现的顺序。 Vfolder 信息文件的扩展名为 .vfolder-info

以下内容取自一个 vfolder 信息文件:

<?xml version="1.0"?>
<VFolderInfo>
.
.
.
  <Folder>
    <Name>Applications</Name>
    <Desktop>Applications.directory</Desktop>
    <Folder>
      <Name>Accessories</Name>
      <DontShowIfEmpty/>
      <Desktop>Accessories.directory</Desktop>
      <Query>
        <And>
          <Keyword>Application</Keyword>
          <Keyword>Utility</Keyword>
        </And>
      </Query>
    </Folder>
.
.
.
  </Folder>
</VFolderInfo>

表 2–2 介绍了 vfolder 信息文件中的某些元素。

表 2–2 Vfolder 信息文件元素

元素 

说明  

<Folder>

包含定义菜单的名称、内容和结构的元素。 

<Name>

指定该菜单的名称。  

<Desktop>

指定一个目录项文件的名称,该文件指定菜单的名称、注释和图标。 

<Query>

指定要对桌面项文件运行的查询。 如果桌面项文件与查询要求相匹配,相应的菜单项将显示在菜单中。  

上例中的查询搜索 Categories 键中包含 UtilityApplication 关键字的桌面项文件。 匹配的桌面项文件显示在应用程序 菜单中。

此元素是可选的。 

<DontShowIfEmpty/>

如果指定了此元素,而且菜单不包含任何菜单项,则不显示菜单。 

此元素是可选的。 

桌面项文件

桌面项文件是提供菜单项信息的数据文件。 桌面项文件指定菜单项的详细信息,如名称、运行的命令、图标等。 桌面项文件还包含确定菜单项在菜单分级结构中的位置的关键字。 桌面项文件的扩展名为 .desktop

下面是桌面项文件的一个示例:

[Desktop Entry]
Encoding=UTF-8
Name=Calculator
Comment=Perform calculations
Exec=gcalctool
Icon=gcalctool.png
Terminal=false
Type=Application
Categories=GNOME;Application;Utility;
X-GNOME-DocPath=gcalctool/gcalctool.xml

表 2–3介绍了桌面项文件中最重要的键。

表 2–3 桌面项键

桌面项键  

说明 

Encoding

指定桌面项文件的编码。  

Name

指定该菜单项的名称。 此名称显示在该菜单项上。  

Comment

指定关于该菜单项的简短说明。 当您指向该菜单项时,此注释显示为工具提示。  

Exec

指定从菜单中选择该菜单项时执行的命令。  

Icon

指定表示该菜单项的图标的文件名。 不指定文件名的路径或文件扩展名。  

Terminal

指定 Exec 键中的命令是否在终端窗口中运行。 如果此值为 true,则该命令在终端窗口中运行。

对于并不创建窗口以在其中运行的命令,此键的值必须为 true

Type

指定菜单项的类型。 此值应为以下选项之一:  

  • Application: 对于启动应用程序的菜单项,应输入此选项。

  • Link: 对于链接到文件、文件夹或 FTP 站点的菜单项,应输入此选项。

Categories

指定描述该菜单项的关键字。 各个关键字之间用分号 (;) 分隔。 要查看标准类目关键字的列表,请参阅以下 URL 的桌面菜单指标:  

http://www.freedesktop.org

vfolder 信息文件将这些关键字映射到菜单。 

X-GNOME-DocPath

指定从菜单项弹出菜单中选择有关 application_name 的帮助时要显示的帮助文件。

有关桌面项文件中的键的详细信息,请参阅以下 URL 中的桌面项指标:

http://www.freedesktop.org

注意:

面板启动程序和桌面对象也使用桌面项文件。 启动程序和桌面对象的桌面项文件所提供的信息与菜单项信息相同。 例如,桌面项文件提供用户选择启动程序或对象时要运行的命令。


目录项文件

目录项文件是提供菜单信息的数据文件。 目录目文件指定菜单的详细信息,如名称、工具提示、图标等。 目录项文件的扩展名为 .directory

下面是目录项文件的一个示例:

[Desktop Entry]
Name=Accessories
Comment=Accessories menu
Icon=gnome-util.png
Type=Directory

表 2–4介绍了目录项文件中最重要的键。

表 2–4 目录项键

目录项键  

说明 

Name

指定该菜单的名称。 此名称显示在该菜单上。  

Comment

指定关于该菜单的简短说明。 当您指向该菜单时,此注释显示为工具提示。  

Icon

指定表示该菜单的图标的文件名。 不指定文件名的路径或文件扩展名。  

Type

指定菜单的类型。 这个键的值始终是 Directory.

编辑菜单

您可以使用以下 GNOME 桌面组件来编辑菜单:

使用文件管理器为所有用户添加菜单或菜单项时,必须将菜单或菜单项添加到 URI 位置。 表 2–1 列出了可以添加菜单项的菜单以及与菜单相对应的 URI 位置。

使用面板为所有用户定制菜单时,应使用菜单项弹出菜单。 有关更多信息,请参阅Working With Menus in the GNOME 2.2 Desktop on Linux User Guide

也可以使用菜单配置文件和菜单数据文件来定制菜单。

添加菜单

可以使用以下方法为所有用户添加菜单:

使用文件管理器添加菜单

要为所有用户添加菜单,请执行以下步骤:

  1. 在文件管理器窗口中,转到要将菜单添加到的位置。 例如,要将菜单添加到应用程序菜单,请在位置字段中键入 applications-all-users:///,然后按回车键。

  2. 选择 文件 -> 新文件夹. 系统会在视图窗格中添加一个未命名的文件夹。 该文件夹的名称已被选中。

  3. 键入该文件夹的名称,然后按下回车键。 您在第 1 步中转到的位置的 vfolder 信息文件将使用新菜单的详细信息自动更新。 该文件夹的名称显示为菜单名称。

用户下次登录时,该菜单将位于指定的位置。

使用菜单文件添加菜单

要为所有用户添加菜单,请执行以下步骤:

  1. 为要添加的菜单创建目录项文件。 在 /usr/share/gnome/vfolders 目录中创建目录项文件。 有关目录项文件的更多信息,请参阅目录项文件

  2. 找到要将菜单添加到的位置的 vfolder 信息文件。 例如,要将菜单添加到应用程序菜单,请找到文件 /etc/gnome-vfs-2.0/vfolders/applications-all-users.vfolder-info

  3. 在 vfolder 信息文件中,为新菜单添加 <Folder> 元素。 有关 vfolder 信息文件的更多信息,请参阅虚拟文件夹和菜单

用户下次登录时,该菜单将位于指定的位置。

将菜单项添加到菜单中

要为所有用户将菜单项添加到菜单中,请执行以下步骤:

  1. 为要添加的菜单项创建桌面项文件。 有关桌面项文件的更多信息,请参阅桌面项文件

  2. 打开文件管理器窗口。 选择 文件 -> 新窗口以打开第二个文件管理器窗口。

  3. 在一个窗口中,转到要将菜单项添加到的位置。 例如,要将菜单项添加到首选项菜单中,请在 位置字段中键入 preferences-all-users:///,然后按回车键。

  4. 在另一个窗口中,选择为菜单项创建的桌面项文件。 将桌面项文件拖动到要将菜单项添加到的位置。

    或者,也可以复制桌面项文件,然后将该文件粘贴到要将菜单项添加到的位置。

用户下次登录时,该菜单项将位于指定的位置。

编辑菜单属性

要为所有用户编辑菜单的属性,请执行以下步骤:

  1. 从面板中,打开要编辑的菜单。 在菜单中右击任意菜单项。

  2. 选择 整个菜单 -> 属性. 即可显示启动程序属性对话框。

  3. 在启动程序属性对话框中修改该菜单的属性。 有关启动程序属性对话框中的元素的更多信息,请参阅GNOME 2.2 Desktop on Linux User Guide中的使用面板

  4. 单击确定。

编辑菜单项

要编辑菜单项,请执行以下步骤:

  1. 从面板中,打开包含要编辑的菜单项的菜单。 右击要编辑的菜单项。

  2. 选择属性。 即可显示启动程序属性对话框。

  3. 在启动程序属性对话框中修改菜单项的属性。 有关启动程序属性对话框中的元素的更多信息,请参阅GNOME 2.2 Desktop on Linux User Guide中的使用面板

  4. 单击确定。

从菜单删除菜单项

要从菜单中删除菜单项,从面板中打开包含要删除的菜单项的菜单。 右击您想删除的的菜单项。 选择删除此菜单项。

用户下次登录时,菜单中将不显示该菜单项。

配置用户无法修改的菜单

如果满足以下条件,用户将无法修改菜单:

要配置菜单使用户无法修改它,请执行以下步骤:

  1. /etc/gnome-vfs-2.0/vfolders 目录中,为要配置的菜单创建 vfolder 信息文件。

  2. 为 vfolder 信息文件指定与要配置的菜单相对应的 URI 位置相同的名称。 例如,要配置应用程序菜单,请在 /etc/gnome-vfs-2.0/vfolders 目录中创建名为 applications.vfolder-info 的 vfolder 信息文件。

  3. 将对该 vfolder 信息文件的权限设置为只读。