1

在 Java 或其他编程语言中,如何在 KDE 和 Gnome 的应用程序菜单中添加新程序组?

我正在使用 Ubuntu 和 Kubuntu 8 进行测试。在 ~/.config/menus/applications-merged 中放置一个简单的 .menu 文件在 Kubuntu 中有效,但相同的过程在 Ubuntu 中没有任何作用。

我的文件内容如下:

<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN" "http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
<Menu>
<Menu>
  <Name>My Program Group</Name>
  <Include>
   <Filename>shortcut.desktop</Filename>
  </Include>
</Menu>
</Menu>

请注意,.desktop 文件正确放置在 ~/.local/share/applications 中。

Ps:最初的问题没有指定我想要以编程方式解决方案。

4

5 回答 5

1

也许 xdg-desktop-menu 可以做到这一点?请参阅man xdg-desktop-menuhttp://manpages.ubuntu.com/manpages/hardy/en/man1/xdg-desktop-menu.html

于 2008-10-06T12:35:47.037 回答
1

谢谢,奥利弗。我使用了 xdg-desktop-menu,然后分析了它的输出。正确的菜单文件需要显式命名外层菜单(Applications),如下:

<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN" 
    "http://www.freedesktop.org/standards/menu-spec/menu-1.0.dtd">
<Menu>
    <Name>Applications</Name>
<Menu>
    <Name>My Program Group</Name>
    <Include>
        <Filename>shortcut.desktop</Filename>
    </Include>
</Menu>
</Menu>

这在 Kubuntu、Ubuntu 和 Fedora Core 9 中运行良好。但无法在 openSUSE 上运行。

于 2008-10-06T16:54:16.657 回答
1

我建议您查看涵盖此内容的 freedesktop.org 标准。最新列表可在此处获得:

http://www.freedesktop.org/wiki/Specifications/menu-spec

目前最新的是1.0:

http://standards.freedesktop.org/menu-spec/1.0/

Gnome、KDE ​​和 XFCE 遵循 FreeDesktop.org 标准,因此它应该适用于任何发行版。

于 2008-10-06T20:56:03.017 回答
0

在 Gnome 中使用 System -> Settings -> Menu 然后选择 New Menu 或 New Entry。

于 2008-10-06T12:32:47.433 回答
0

不确定“在 openSUSE 中 .directory 文件是强制性的,否则程序组不会显示”的确切含义;通常我认为您必须调用 xdg-desktop-menu 两次(一次用于程序组,一次用于程序本身),因此您还必须提供两个不同的 .directory 文件。如果程序组为空,则桌面将其隐藏是有道理的。

(但也许我在这里完全误解了你:-)而且我自己从来没有使用过 xdg-desktop-menu )。

于 2008-10-08T16:52:00.437 回答