Добавление новой группы приложений в Linux - PullRequest
1 голос
/ 06 октября 2008

Как я могу в Java или с помощью какого-либо другого языка программирования добавить новую группу программ в меню приложений как в KDE, так и в Gnome?

Я тестирую с Ubuntu и Kubuntu 8. Помещение простого файла .menu в ~ / .config / menus / Applications-merged сработало в 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: в первоначальном вопросе не было указано, что я хотел найти решение программным путем.

Ответы [ 5 ]

1 голос
/ 07 октября 2008

Я рекомендую вам ознакомиться со стандартами 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, поэтому он должен работать в любом дистрибутиве.

1 голос
/ 06 октября 2008

Может быть, xdg-desktop-menu это делает? См. man xdg-desktop-menu или http://manpages.ubuntu.com/manpages/hardy/en/man1/xdg-desktop-menu.html.

1 голос
/ 06 октября 2008

Спасибо, Оливер. Я использовал xdg-desktop-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>
<Menu>
    <Name>My Program Group</Name>
    <Include>
        <Filename>shortcut.desktop</Filename>
    </Include>
</Menu>
</Menu>

Это хорошо работало в Kubuntu, Ubuntu и Fedora Core 9. Однако не удалось заставить его работать на openSUSE.

0 голосов
/ 08 октября 2008

Не уверен, что именно вы имели в виду под «в openSUSE файл .directory является обязательным, иначе группа программ не отображается»; как правило, я полагаю, что вам нужно дважды вызывать xdg-desktop-menu (один раз для группы программ и один раз для самой программы), поэтому вам также необходимо предоставить два разных файла .directory. Если группа программ пуста, имеет смысл, что рабочий стол скрывает ее.

(Но, может быть, я совершенно не понял вас здесь :-) и я все равно никогда не использовал xdg-desktop-menu).

0 голосов
/ 06 октября 2008

В Gnome используйте Система -> Настройки -> Меню, затем просто выберите Новое меню или Новая запись.

...