Вопрос

Как я могу в 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: в первоначальном вопросе не было указано, что я хотел найти решение программным способом.

Это было полезно?

Решение

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

Другие советы

Спасибо, Оливер. Я использовал 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.

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top