代码之家  ›  专栏  ›  技术社区  ›  Thiago Chaves

在Linux中添加新的应用程序组

  •  1
  • Thiago Chaves  · 技术社区  · 17 年前

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

    我在Ubuntu和Kubuntu 8测试。将一个简单的.menu文件放入~/.config/menus/applications合并后在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中。

    附言:最初的问题没有说明我想要一个程序化的解决方案。

    5 回复  |  直到 17 年前
        1
  •  1
  •   oliver    17 年前

    也许xdg桌面菜单能做到?见 man xdg-desktop-menu http://manpages.ubuntu.com/manpages/hardy/en/man1/xdg-desktop-menu.html .

        2
  •  1
  •   Thiago Chaves    17 年前

    谢谢,奥利弗。我使用了xdg桌面菜单,然后分析了它的输出。正确的菜单文件需要显式命名外部菜单(应用程序),如下所示:

    <!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上无法运行。

        3
  •  1
  •   Milan BabuÅ¡kov    17 年前

    我建议你研究一下FreeDesktop.org的标准。此处提供最新列表:

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

    最新版本是1.0:

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

    freedesktop.org标准遵循gnome、kde和xfce,因此它应该适用于任何发行版。

        4
  •  0
  •   fly.floh    17 年前

    在gnome中,使用系统->设置->菜单,然后选择新建菜单或新条目。

        5
  •  0
  •   oliver    17 年前

    不知道“在opensuse中,.directory文件是必需的,否则程序组就不会显示出来”是什么意思;通常我认为您必须调用两次xdg桌面菜单(一次是程序组,一次是程序本身),因此您还必须提供两个不同的.directory文件。如果程序组是空的,桌面隐藏它是有意义的。

    (但也许我完全误解了你的意思):-)而且我自己也从未使用过xdg桌面菜单。