跳过导航链接 | |
退出打印视图 | |
Oracle Solaris 11.1 Desktop 管理员指南 Oracle Solaris 11.1 Information Library (简体中文) |
缺省情况下,用户菜单配置文件优先于同名的系统菜单配置文件。例如,如果用户的 $XDG_CONFIG_HOME/menus 目录中存在 applications.menu 文件,则使用该文件(而不是系统 applications.menu 文件)配置该用户的 "Applications"(应用程序)菜单。此替换可能会导致用户没有权限访问其希望访问的所有菜单项。要避免此情形,某个菜单配置文件可指定其将与其他菜单配置文件合并,而不是替换这些菜单配置文件。以下各节对此流程进行了说明。
通常,用户仅希望添加或删除对标准系统菜单进行补充的菜单项。要支持这些更改,应在用户的 applications.menu 文件中使用属性 type="parent" 的 <MergeFile> 元素。
<MergeFile> 元素使菜单可以与用户的菜单文件内容进行合并。将元素的 type 属性指定为 “parent” 时,会忽略 <MergeFile> 元素的内容。使用 $XDG_CONFIG_DIRS/menus 目录中的下一个 applications.menu 文件进行合并。
注 - 早期的规范不包含 type 属性,仅要求将菜单文件的位置作为 <MergeFile> 元素的内容进行合并。因此, <MergeFile> 的内容中可能仍会指定位置,即使 type="parent" 也是如此。
菜单合并的执行方式如下所示:
合并的菜单文件中根 <Menu> 元素的子元素替换基本菜单文件中的 <MergeFile> 元素。
注 - “合并的菜单文件”指 $XDG_CONFIG_DIRS/menus 目录中的下一个 applications.menu。
将所有同名 <Menu> 子元素整合到单个 <Menu> 元素中(通过将每个 <Menu> 元素的所有同名子元素附加到最后出现的菜单元素)。
以下示例显示了显式合并系统菜单文件的用户菜单文件。
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN" "http://www.freedesktop.org/standards/menu-spec/menu-1.0.dtd"> <Menu> <Name>Applications</Name> <MergeFile type="parent">/etc/xdg/menus/applications.menu</MergeFile> <Menu> <Name>Accessibility</Name> <Exclude> <Filename>dasher.desktop</Filename> </Exclude> </Menu> </Menu>