本章介绍 GNOME 如何实现菜单以及您可以如何定制菜单。
GNOME 桌面实施菜单的方式使您能够:
轻松定制菜单分级结构。菜单分级结构不基于文件系统分级结构。您可以通过编辑少数几个文件来定制菜单分级结构。 您无需修改应用程序或移动文件。
轻松安装应用程序。安装应用程序时,无需向应用程序提供有关菜单分级结构的信息。
配置菜单,使用户无法修改菜单。
GNOME 桌面上的菜单使用以下组件:
文件抽象层
Vfolder
桌面项文件
目录项文件
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 键中包含 Utility 和 Application 关键字的桌面项文件。匹配的桌面项文件显示在“应用程序” 菜单中。 此元素是可选的。 |
<DontShowIfEmpty/> |
如果指定了此元素,而且菜单不包含任何菜单项,则不显示菜单。 此元素是可选的。 |
桌面项文件是提供菜单项信息的数据文件。桌面项文件指定菜单项的详细信息,如名称、运行的命令、图标等。 桌面项文件还包含确定菜单项在菜单分级结构中的位置的关键字。 桌面项文件的扩展名为 .desktop。
下面是桌面项文件的一个示例:
[Desktop Entry] Encoding=UTF-8 Name=Calculator Comment=Perform simple calculations Exec=gnome-calculator Icon=gnome-calc3.png Terminal=false Type=Application X-GNOME-DocPath=gnome-calculator/gnome-calculator.xml Categories=GNOME;Application;Utility
表 2–3介绍了桌面项文件中最重要的键。
表 2–3 桌面项键
桌面项键 |
说明 |
---|---|
Encoding |
指定桌面项文件的编码。 |
Name |
指定该菜单项的名称。此名称显示在该菜单项上。 |
Comment |
指定关于该菜单项的简短说明。当您指向该菜单项时,此注释显示为工具提示。 |
Exec |
指定从菜单中选择该菜单项时执行的命令。 |
Icon |
指定表示该菜单项的图标的文件名。不指定该文件名的路径,或文件扩展名。 |
Terminal |
指定 Exec 键中的命令是否在终端窗口中运行。 如果此值为 true,则该命令在终端窗口中运行。 对于并不创建窗口以在其中运行的命令,此键的值必须为 true。 |
Type |
指定菜单项的类型。此值应为以下选项之一:
|
X-GNOME-DocPath |
指定从菜单项弹出菜单中选择有关 application_name 的帮助时要显示的帮助文件。 |
Categories |
指定描述该菜单项的关键字。 各个关键字之间用分号 (;) 分隔。 要查看标准类别关键字的列表,请访问以下 URL: http://www.freedesktop.org/standards/VFolderDesktops.txt vfolder 信息文件将这些关键字映射到菜单。 |
有关桌面项文件中的键的详细信息,请访问以下 URL:
http://www.freedesktop.org/standards/desktop-entry-spec/desktop-entry-spec.html
面板启动程序和桌面背景对象也使用桌面项文件。 启动程序和桌面背景对象的桌面项文件所提供的信息与菜单项信息相同。 例如,桌面项文件提供用户选择启动程序或对象时要运行的命令。
目录项文件是提供菜单信息的数据文件。目录目文件指定菜单的详细信息,如名称、工具提示、图标等。目录项文件的扩展名为 .directory。
下面是目录项文件的一个示例:
[Desktop Entry] Name=Accessories Comment=Accessories menu Icon=gnome-util.png Type=Directory
表 2–4介绍了目录项文件中最重要的键。
表 2–4 目录项键
目录项键 |
说明 |
---|---|
Name |
指定该菜单的名称。 此名称显示在该菜单上。 |
Comment |
指定关于该菜单的简短说明。当您指向该菜单时,此注释显示为工具提示。 |
Icon |
指定表示该菜单的图标的文件名。 不指定该文件名的路径,或文件扩展名。 |
Type |
指定菜单的类型。 该键的值始终为 Directory。 |
可以使用以下桌面组件编辑菜单:
Nautilus
文件管理器
面板上的菜单
使用文件管理器为所有用户添加菜单或菜单项时,必须将菜单或菜单项添加到 URI 位置。 表 2–1 列出了可以添加菜单项的菜单以及与菜单相对应的 URI 位置。
使用面板为所有用户定制菜单时,应使用菜单项弹出菜单。 有关更多信息,请参阅《用于 Solaris 操作 环境的 GNOME 2.0 桌面用户指南》中的“使用菜单”。
也可以使用菜单配置文件和菜单数据文件来定制菜单。
可以使用以下方法为所有用户添加菜单:
使用文件管理器。
修改菜单配置文件和菜单数据文件。
要为所有用户添加菜单,请执行以下步骤:
在文件管理器窗口中,转到要将菜单添加到的位置。例如,要将菜单添加到“应用程序”菜单,请在“位置”字段中键入 applications-all-users:///,然后按回车键。
选择“文件”->“新建文件夹”。系统会在视图窗格中添加一个未命名的文件夹。该文件夹的名称已被选中。
键入该文件夹的名称,然后按下回车键。您在第 1 步中转到的位置的 vfolder 信息文件将使用新菜单的详细信息自动更新。 该文件夹的名称显示为菜单名称。
可能需要先刷新文件管理器窗口,然后才能键入文件夹的名称。
用户下次登录时,该菜单将位于指定的位置。
要为所有用户添加菜单,请执行以下步骤:
为要添加的菜单创建目录项文件。将目录项文件创建在 /usr/gnome/share/gnome/vfolders 目录下。有关目录项文件的更多信息,请参阅目录项文件。
找到要将菜单添加到的位置的 vfolder 信息文件。 例如,要将菜单添加到“应用程序”菜单,请找到文件 /usr/gnome/etc/gnome-vfs-2.0/vfolders/applications-all-users.vfolder-info 。
在 vfolder 信息文件中,为新菜单添加 <Folder> 元素。 有关 vfolder 信息文件的更多信息,请参阅Vfolder 和菜单。
用户下次登录时,该菜单将位于指定的位置。
要为所有用户将菜单项添加到菜单中,请执行以下步骤:
为要添加的菜单项创建桌面项文件。有关桌面项文件的更多信息,请参阅桌面项文件。
打开文件管理器窗口。 选择“文件”->“新建窗口”打开另一个文件管理器窗口。
在一个窗口中,转到要将菜单项添加到的位置。例如,要将菜单项添加到“首选项”菜单中,请在 “位置”字段中键入 preferences-all-users:///,然后按回车键。
在另一个窗口中,选择为菜单项创建的桌面项文件。 将桌面项文件拖动到要将菜单项添加到的位置。
或者,也可以复制桌面项文件,然后将该文件粘贴到要将菜单项添加到的位置。
用户下次登录时,该菜单项将位于指定的位置。
要为所有用户编辑菜单的属性,请执行以下步骤:
从面板中,打开要编辑的菜单。在菜单中右击任意菜单项。
选择“整个菜单”-> “属性”。 即可显示“启动程序属性”对话框。
在“启动程序属性”对话框中修改菜单属性。有关“启动程序属性”对话框元素的更多信息,请参阅《用于 Solaris 操作环境的 GNOME 2.0 桌面用户指南》中的“使用面板”。
单击“确定”。
要编辑菜单项,请执行以下步骤:
从面板中,打开包含要编辑的菜单项的菜单。 右击要编辑的菜单项。
选择“属性”。 即可显示“启动程序属性”对话框。
在“启动程序属性”对话框中修改菜单项的属性。有关“启动程序属性”对话框元素的更多信息,请参阅《用于 Solaris 操作环境的 GNOME 2.0 桌面用户指南》中的“使用面板”。
单击“确定”。
要从菜单中删除菜单项,从面板中打开包含要删除的菜单项的菜单。右击要删除的菜单项。选择“删除此菜单项”。
用户下次登录时,菜单中将不显示该菜单项。
如果满足以下条件,用户将无法修改菜单:
/etc/gnome-vfs-2.0/vfolder 目录中存在与菜单相对应的 vfolder 信息文件。
vfolder 信息文件与对应于菜单的 URI 位置同名。
vfolder 信息文件的用户权限被设置为只读。
要配置菜单使用户无法修改它,请执行以下步骤:
在 /etc/gnome-vfs-2.0/vfolder 目录中,为要配置的菜单创建 vfolder 信息文件。
为 vfolder 信息文件指定与要配置的菜单相对应的 URI 位置相同的名称。例如,要配置“应用程序”菜单,请在 /etc/gnome-vfs-2.0/vfolder 目录中创建名为 applications.vfolder-info 的 vfolder 信息文件。
将对该 vfolder 信息文件的权限设置为只读。