Добавление новой группы приложений в Linux
-
05-07-2019 - |
Вопрос
Как я могу в 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).