1. создать (или проверить наличие) файла (того которое будем добавлять в меню) с расширением desktop и находящегося в каталоге /usr/share/applications/ (ну или аналогично в домашней директории нужного нам пользователя /home/user/.local/share/applications/, если меню будем менять только для одного пользователя).
Для примера я решил добавить MC. Соответственно переходим в /usr/share/applications/ и создаём файл mc.desktop со следующим содержимым:
# Кодировка
Encoding=UTF-8
#Указывает что приложение (может быть и каталог и ссылка на URL)
Type=Application
# Имя (То что будет отображаться)
Name=MC
#Коментарий
Comment=mc
#Имя иконки !Иконка с данным именем должна быть в вашей системе
Icon=mc
#Так как приложение консольное то ставим true иначе можно false
Terminal=true
#Собственно команда запуска. !Можно указывать полный путь к приложению.
Exec=mc
#Дословно: Скрывать в меню? - Нет
NoDisplay=false
#Категории меню в которых отображать наше приложение, перечисляем через запятую. !Точка с запятой в конце обязательна.
Categories=mc;
В самом начале Есть такие строчки:
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
"http://www.freedesktop.org/standards/me ... 0/menu.dtd">
<Menu>
<Name>Applications</Name>
<Directory>lxde-menu-applications.directory</Directory>
Сразу после них можно добавлять своё приложение, для этого вставляем такую форму:
<Include>
<Filename>mc.desktop</Filename>
</Include>
И сохраняем изменения. Готово.
3. Если изменения не произошли то можно перезапустить сессию либо в консоли выполнить:
Код: Выделить всё
$ killall lxpanel
Код: Выделить всё
$ find ~/.cache/menus -name '*' -type f -print0 | xargs -0 rm
Код: Выделить всё
$ lxpanel -p LXDE &
4. Если хотим добавит в меню свои подменю то дополнительно прийдётся создать свою категорию этого подменю. Для этого переходим в /usr/share/desktop-directories/ (или аналогично в домашней директории нужного нам пользователя /home/user/.local/share/desktop-directories/, если меню будем менять только для одного пользователя). Опять для примера возьмём MC:
Cоздаём файл mc.directory следующего содержания:
#Имя директории
Name=mc
#Имя директории на Русском
Name[ru]=mc
#Коментарий
Comment=mc-comment
#Коментарий на русском
Comment[ru]=mc-coment-ru
#Иконка Директории
Icon=applications-other
#Указываем что данный файл описывает директорию
Type=Directory
Теперь остаётся только включить эту директорию в наше меню. Для этого открываем /etc/xdg/menus/lxde-applications.menu
и находим блоки типа
Код: Выделить всё
<!-- Games -->
<Menu>
<Name>Games</Name>
<Directory>lxde-game.directory</Directory>
<Include>
<And>
<Category>Game</Category>
</And>
</Include>
</Menu> <!-- End Games -->
Самый простой способ добавить своё подменю это скопировать всё что находится внутри между <!-- Games --> и <!-- End Games --> изменить значения полей на свои
Где <!-- Games --> и <!-- End Games --> по сути это комментарии помогающее легче ориентироваться по тексту, заменим на <!-- mysubmenu --> и <!-- End mysubmenu -->
Всё что между <Name>...</Name> означает имя и может быть любым
<Directory>lxde-mydirectory.directory</Directory> - добавляет директорию .
Не обязательно, но возможно, добавить
<And>
<Category>mycategory</Category>
</And>
Указывает что сюда так же будут добавлены приложения с категорией mycategory.
Вот собственно и Всё.
Понимаю что несколько сумбурно, но как умею, будут вопросы задавайте.
П.С. Ещё хочу немного разъяснить терминологию: Для Приложения есть такое понятие как категория и одноимённый ключ в файле desktop с именем Categories в котором мы можем указать к какой или каким категориям принадлежит данный фаил. Категории аналогичны категориям в центре приложений.
Для меню есть такое понятие как директория это означает по сути один пункт меню (по русски проще подменю) который содержит либо другие директории либо приложения.
Тоесть, если файл с расширением .desktop описует свойства и то как будет выглядеть пункт меню самого приложения. А файл с расширением .directory описывает свойства и как должен выглядеть пункт меню для входящих в него приложений одной категории.