Show Table of Contents
第 12 章 整合应用程序
在 GNOME 桌面上整合应用程序时,系统管理员通常会执行有关定制“应用程序”菜单结构和 MIME 类型的相关任务,例如:
- 通过创建或修改子菜单为应用程序添加或修改一个菜单项,或自定义“应用程序”的菜单结构。关于菜单定制的更多信息,请参见 〈第 12.1 节 “自定义菜单”〉。
- 在“
活动概览”中自定义 GNOME Shell dash 上可见的默认最热门程序。关于如何操作的更多信息,请参见 〈第 12.2 节 “自定义默认的最热门程序”〉。 - 添加或修改应用程序的 MIME 类型,并赋予应用程序某一特定的 MIME 类型。关于配置 MIME 类型的更多信息,请参见 〈第 12.3 节 “配置文件关联”〉。
12.1. 自定义菜单
GNOME 菜单系统基于 freedesktop.org Desktop Menu Specification,由三组主要的配置文件和数据文件组成。
- 桌面项文件(
.desktop) - 后缀
.desktop的文件提供每个菜单项的名称、运行命令、图标等数据。后缀.desktop的条目文件也规定了菜单项在菜单结构中的位置,以及在“活动概览”中搜寻应用程序所使用的键值。.desktop系统文件位于/usr/share/applications/目录下。针对用户特定的.desktop文件位于~/.local/share/applications/目录下。以下是一个名为~/.local/share/applications/myapplication1.desktop的.desktop样本文件:[Desktop Entry] Type=Application Name=My Application 1 Icon=myapplication1 Exec=myapplication1 Categories=Network;WebBrowser; MimeType=application/x-newtype
上述文件规定了应用程序的名称(My Application 1),应用程序的图标(myapplication1),以及运行该应用程序的命令(myapplication1)。它还将这个应用程序放置在一个特定的类别目录下(“Network;WebBrowser;”),并且将该应用程序与“application/x-newtype”MIME 类型关联。 - 菜单定义文件(
.menu) .menu文件是 XML 配置文件,它们规定了菜单和菜单项的顺序、级别和合并。计算机范围的.menu文件位于/etc/xdg/menus/目录下。针对用户特定的.menu文件位于~/.config/menus/目录下,它们可以用来覆盖计算机范围的.menu文件中规定的值。特别的一点是,/etc/xdg/menus/applications.menu文件中包括对“应用程序”菜单布局的定义。- 目录项文件(
.directory) .directory文件提供每个菜单的名称等数据,它们位于/usr/share/desktop-directories/中。
获得更多信息
关于描述桌面项文件的更多信息,请参见位于 freedesktop.org 网站的《桌面项说明 》:
关于描述 GNOME 菜单系统执行情况的详细信息,请参见位于 freedesktop.org 网站的《桌面菜单说明 》。
12.1.1. 为个别用户移除某个菜单项
针对某个指定用户的“应用程序”菜单定制默认存储于
~/.config/menus/gnome-applications.menu 定义文件中。该文件的位置可以通过设置 $XDG_DATA_HOME 环境变量被覆盖。
如需覆盖“应用程序”菜单的默认属性,首先需要创建一个
gnome-applications.menu 文件。要注意,从“应用程序”菜单移除一个目录项及其子菜单时,也会将它从“活动概览”中的应用程序视图里移除,从而防止用户在“概览”中搜索该项。
过程 12.1. 示例:从附件子菜单中移除计算器菜单项
- 查阅
/usr/share/applications/目录的内容,并确定您想要移除的菜单项所对应的.desktop文件:$grep -r "Name=Calculator" /usr/share/applications//usr/share/applications/gcalctool.desktop:Name=Calculator如上所示,“计算器”菜单项对应/usr/share/applications/gcalctool.desktop文件。 - 创建一个
~/.config/menus/gnome-applications.menu文件:<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN" "http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd"> <Menu> <Name>Applications</Name> <MergeFile type="parent">/etc/xdg/menus/gnome-applications.menu</MergeFile> <!-- Removes the Calculator from the Accessories submenu --> <Menu> <Name>Accessories</Name> <Exclude> <Filename>gcalctool.desktop</Filename> </Exclude> </Menu> <!-- END of Calculator removal content --> </Menu>如上所示,文件中包括一个规定子菜单名字(Accessories)的<Menu>部分、.desktop文件的名字(gcalctool.desktop)、以及<Exclude>元素。
12.1.2. 为所有用户移除某个菜单项
面向所有用户的“应用程序”菜单定制默认存储于
/etc/xdg/menus/applications.menu 定义文件中。该文件的位置可以通过设置 $XDG_CONFIG_DIRS 环境变量被覆盖。
如需覆盖“应用程序”菜单的默认属性,您需要编辑那个
.menu 文件。要注意,从“应用程序”菜单移除一个目录项及其子菜单时,也会将它从“活动概览”中的应用程序视图里移除,从而防止用户在“概览”中搜索该项。
过程 12.2. 示例:从附件子菜单中移除计算器菜单项
- 查阅
/usr/share/applications/目录的内容,并确定您想要移除的菜单项所对应的.desktop文件:$grep -r "Name=Calculator" /usr/share/applications//usr/share/applications/gcalctool.desktop:Name=Calculator如上所示,“计算器(Calculator)”菜单项对应/usr/share/applications/gcalctool.desktop文件。 - 编辑
/etc/xdg/menus/applications.menu文件,并通过如下所示的<Exclude>元素在那个.menu文件末尾处最后的</Menu>标签前添加一个新的<Menu>部分。<!-- Removes the Calculator from the Accessories submenu --> <Menu> <Name>Accessories</Name> <Exclude> <Filename>gcalctool.desktop</Filename> </Exclude> </Menu> <!-- END of Calculator removal content --> </Menu> <!-- End Applications -->
12.1.3. 为个别用户移除某个子菜单
针对某个指定用户的“应用程序”菜单定制默认存储于
~/.config/menus/gnome-applications.menu 定义文件中。该文件的位置可以通过设置 $XDG_DATA_HOME 环境变量被覆盖。
如需覆盖“应用程序”菜单的默认属性,首先需要创建一个
gnome-applications.menu 文件。要注意,从“应用程序”菜单中移除一个子菜单时,也会将它所包括的所有菜单项从“活动概览”中的应用程序视图里移除,从而防止用户在“概览”中搜索这些项目。
例 12.1. 从应用程序菜单中移除系统工具子菜单
创建一个
~/.config/menus/gnome-applications.menu 文件:
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
"http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
<Menu>
<Name>Applications</Name>
<MergeFile type="parent">/etc/xdg/menus/gnome-applications.menu</MergeFile>
<!-- Removes the System Tools submenu from the Applications menu-->
<Menu>
<Name>System Tools</Name>
<Deleted/>
</Menu>
<!-- END of System Tools removal content -->
</Menu>
如上所示,文件中包括一个规定子菜单名字(System Tools)的
<Menu> 部分,还包括 <Deleted/> 标签。
12.1.4. 为所有用户移除某个子菜单
面向所有用户的“应用程序”菜单定制默认存储于
/etc/xdg/menus/applications.menu 定义文件中。该文件的位置可以通过设置 $XDG_CONFIG_DIRS 环境变量被覆盖。
如需覆盖“应用程序”菜单的默认属性,您需要修改那个
.menu 文件。要注意,从“应用程序”菜单中移除一个子菜单时,也会将它所包括的所有菜单项从“活动概览”中的应用程序视图里移除,从而防止用户在“概览”中搜索这些项目。
例 12.2. 从应用程序菜单中移除系统工具子菜单
编辑
/etc/xdg/menus/applications.menu 文件,并通过如下所示的 <Deleted/> 元素在那个 .menu 文件末尾处最后的 </Menu> 标签前添加一个新的 <Menu> 部分。
<!-- Removes the System Tools submenu from the Applications menu-->
<Menu>
<Name>System Tools</Name>
<Deleted/>
</Menu>
<!-- END of System Tools removal content -->
</Menu>
Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.