在 CentOS7 GNOME 的 Applications-menu 选项卡中创建自定义菜单

jam*_*alm 3 centos gnome3

我已经创建了一个 .menu 文件/etc/xdg/menus/applications-merged/,创建了 .directory 文件/usr/share/desktop-directories/和各种 .desktop 文件,我想在我的自定义菜单中/usr/share/applications使用自定义类别扩展名,Categories=X-nameofcategory但仍然没有菜单出现在我的应用程序菜单中。

我想知道是否有我遗漏的步骤,我没有使用 alacarte,因为我需要创建多个应用程序,而 alacarte 是非常手动的,必须为每个图标添加目录路径,可执行文件并且没有拖放方法。我原以为有一种标准的方法可以做到这一点,并遵循了 freedesktop 描述的步骤,但我仍然不知所措。任何帮助或见解将不胜感激!

jam*_*alm 6

似乎没有人知道或无法回答,所以我会抛出我找到的解决方案!

您应该关注 3 个位置:

  • /usr/share/desktop-directories
  • /etc/xdg/menus/applications-merged
  • /usr/share/applications

请记住,最后一个位置是特定于系统的,如果您只想为您的用户使用它,请使用: ~/.local/share/applications

首先我们:

  1. 在文件夹位置创建一个名为APPNAME.menu(替换APPNAME为您想要的任何名称)的文件/etc/xdg/menus/applications-merged
  2. 输入这些内容:
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
        "http://www.freedesktop.org/standards/menu-spec/menu-1.0.dtd">
<Menu>
<Name>Applications</Name> <!-- This is necessary for your directory to appear in the applications drop down -->
<Menu> <!--app -->
<Name>app</Name>
<Directory>APPNAME.directory</Directory>
<Include>
<Category>APPNAME</Category>
</Include>
</Menu> <!-- End app -->
</Menu> <!-- End Applications -->
Run Code Online (Sandbox Code Playgroud)
  1. 保存文件并使用以下内容创建另一个APPNAME.directory在文件夹位置调用的文件(它应该与.menu文件中指定的名称相同) /usr/share/desktop-directories
[Desktop Entry]
Type=Directory
Name=AppName
Icon=/path/to/icon`
Run Code Online (Sandbox Code Playgroud)

请注意.directory文件名应与.directory您在上述.menu文件中输入的名称完全相同。

  1. .desktop在这些内容中~/.local/share/applications/usr/share/applications使用这些内容创建一个标准文件(当然可以替换您自己的程序,并且该Categories=必须与您之前为.directory文件提供的名称相同)
#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Exec=/path/to/executable.sh
Name=ApplicationToRun
Icon=/path/to/icon
Categories=APPNAME
Comment=Comment for users
Run Code Online (Sandbox Code Playgroud)