Редактируем LXDE menu в ручную.

Модератор: adventurer

Аватара пользователя

Автор темы
lincooln
Сообщения: 44
Зарегистрирован: 24 апр 2011, 07:36
Откуда: Краснодарский край

Редактируем LXDE menu в ручную.

#1

Сообщение lincooln » 20 фев 2012, 07:37

И так. Если мы хотим добавить Своё приложение или под-меню в главное меню LXDE надо:

1. создать (или проверить наличие) файла (того которое будем добавлять в меню) с расширением desktop и находящегося в каталоге /usr/share/applications/ (ну или аналогично в домашней директории нужного нам пользователя /home/user/.local/share/applications/, если меню будем менять только для одного пользователя).
Для примера я решил добавить MC. Соответственно переходим в /usr/share/applications/ и создаём файл mc.desktop со следующим содержимым:

 mc.desktop
[Desktop Entry]
# Кодировка
Encoding=UTF-8
#Указывает что приложение (может быть и каталог и ссылка на URL)
Type=Application
# Имя (То что будет отображаться)
Name=MC
#Коментарий
Comment=mc
#Имя иконки !Иконка с данным именем должна быть в вашей системе
Icon=mc
#Так как приложение консольное то ставим true иначе можно false
Terminal=true
#Собственно команда запуска. !Можно указывать полный путь к приложению.
Exec=mc
#Дословно: Скрывать в меню? - Нет
NoDisplay=false
#Категории меню в которых отображать наше приложение, перечисляем через запятую. !Точка с запятой в конце обязательна.
Categories=mc;


2. Открываем фаил /etc/xdg/menus/lxde-applications.menu - !От root (по сути это обычный xml файл, к тому же по FreeDesktop спецификации), но для пояснения распишу что здесь и для чего:

В самом начале Есть такие строчки:

<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
"http://www.freedesktop.org/standards/menu-spec/1.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 следующего содержания:

 mc.directory
[Desktop Entry]
#Имя директории
Name=mc
#Имя директории на Русском
Name[ru]=mc
#Коментарий
Comment=mc-comment
#Коментарий на русском
Comment[ru]=mc-coment-ru
#Иконка Директории
Icon=applications-other
#Указываем что данный файл описывает директорию
Type=Directory

Затем открываем все файлы с расширением desktop которые хотим видеть во вновь созданной директории и в поле Categories= указываем значение Name= из только-что созданного .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 --> изменить значения полей на свои
Где <!-- Games --> и <!-- End Games --> по сути это комментарии помогающее легче ориентироваться по тексту, заменим на <!-- mysubmenu --> и <!-- End mysubmenu -->
Всё что между <Name>...</Name> означает имя и может быть любым
<Directory>lxde-mydirectory.directory</Directory> - добавляет директорию .
Не обязательно, но возможно, добавить
<And>
<Category>mycategory</Category>
</And>
Указывает что сюда так же будут добавлены приложения с категорией mycategory.

Вот собственно и Всё.

Понимаю что несколько сумбурно, но как умею, будут вопросы задавайте.

П.С. Ещё хочу немного разъяснить терминологию: Для Приложения есть такое понятие как категория и одноимённый ключ в файле desktop с именем Categories в котором мы можем указать к какой или каким категориям принадлежит данный фаил. Категории аналогичны категориям в центре приложений.
Для меню есть такое понятие как директория это означает по сути один пункт меню (по русски проще подменю) который содержит либо другие директории либо приложения.
Тоесть, если файл с расширением .desktop описует свойства и то как будет выглядеть пункт меню самого приложения. А файл с расширением .directory описывает свойства и как должен выглядеть пункт меню для входящих в него приложений одной категории.

Аватара пользователя

adventurer
Супермодератор
Сообщения: 2912
Зарегистрирован: 15 июн 2011, 18:24

Re: Редактируем LXDE menu в ручную.

#2

Сообщение adventurer » 20 фев 2012, 08:21

А приведённый файл mc.desktop запускается в Lubuntu?
У меня mc не запускался. Вот, тема:
http://www.lubuntu.ru/forum/viewtopic.php?f=10&t=521

А вот в Ubuntu запускается.

Аватара пользователя

Автор темы
lincooln
Сообщения: 44
Зарегистрирован: 24 апр 2011, 07:36
Откуда: Краснодарский край

Re: Редактируем LXDE menu в ручную.

#3

Сообщение lincooln » 20 фев 2012, 17:39

Да, у меня запускался в LXDE но в debian 6. Компа с lubuntu под рукой нет, как появится и будет ещё актуально, обязательно отпишусь.

Всё выше описанное проводил на своей рабочей машине. Всё работает.

Могу лишь предположить, что:

1. В ubuntu используется gnome-terminal а не lxterminal => возможно lxterminal иначе принимает параметры передающиеся ему при обработке (читай запуске) файла .desktop и скорее всего это баг определённой версии. т.к. в debian 6 всё работает прекрасным образом версия 0.1.8 аж 2010 года :)
Думаю стоит проверить работоспособность на дргих версиях.

2. Маловероятно, но возможно в файле mc.desktop не указан параметр terminal=true или закоментирован.


lxdeuser
Сообщения: 9
Зарегистрирован: 22 фев 2012, 14:55

Re: Редактируем LXDE menu в ручную.

#4

Сообщение lxdeuser » 07 окт 2012, 20:29

Добавлю, что иногда нужно просто поменять местами порядок категорий в меню. Это не трудно сделать, если в директории ~/.config создать каталог menus с файлом lxde-applications.menu (/home/*user*/.config/menus/lxde-applications.menu) с содержимым:

Код: Выделить всё

<!DOCTYPE Menu
  PUBLIC '-//freedesktop//DTD Menu 1.0//EN'
  'http://standards.freedesktop.org/menu-spec/menu-1.0.dtd'>
<Menu>
   <Name>Applications</Name>
   <MergeFile type="parent">/etc/xdg/menus/lxde-applications.menu</MergeFile>
   <Layout>
      <Merge type="menus"/>
      <Menuname>Internet</Menuname>
      <Menuname>Multimedia</Menuname>
      <Menuname>Graphics</Menuname>
      <Menuname>Games</Menuname>
      <Menuname>Education</Menuname>
      <Menuname>Office</Menuname>
      <Menuname>Development</Menuname>
      <Menuname>Other</Menuname>
      <Menuname>Universal Access</Menuname>
      <Menuname>Accessories</Menuname>
      <Menuname>System</Menuname>
      <Separator/>
      <Menuname>DesktopSettings</Menuname>
      <Merge type="files"/>
   </Layout>
</Menu>

Категории меню выстроятся согласно списку, их можно переставить местами как вам больше нравится.


rasta
Сообщения: 5
Зарегистрирован: 05 июн 2011, 16:58

Re: Редактируем LXDE menu в ручную.

#5

Сообщение rasta » 29 окт 2012, 02:37

А как подредактировать меню , которое на правой кнопке мыши?

Аватара пользователя

adventurer
Супермодератор
Сообщения: 2912
Зарегистрирован: 15 июн 2011, 18:24

Re: Редактируем LXDE menu в ручную.

#6

Сообщение adventurer » 29 окт 2012, 05:33

Имеется в виду меню OpenBox?


rasta
Сообщения: 5
Зарегистрирован: 05 июн 2011, 16:58

Re: Редактируем LXDE menu в ручную.

#7

Сообщение rasta » 29 окт 2012, 07:34

ну да . Там есть подменюшечка applications>browser,pcfileman,lxterminal.
Вот его и надо подредактировать...

Аватара пользователя

adventurer
Супермодератор
Сообщения: 2912
Зарегистрирован: 15 июн 2011, 18:24

Re: Редактируем LXDE menu в ручную.

#8

Сообщение adventurer » 29 окт 2012, 11:13

Можно редактировать меню openbox вручную. Для этого скопировать конфиг в домашнюю директорию:

Код: Выделить всё

cp /etc/xdg/openbox/menu.xml ~/.config/openbox/menu.xml

Далее:

Код: Выделить всё

leafpad ~/.config/openbox/menu.xml

Можно воспользоваться графической утилитой [mono]obmenu[/mono], предварительно установив его в Synaptic.


rasta
Сообщения: 5
Зарегистрирован: 05 июн 2011, 16:58

Re: Редактируем LXDE menu в ручную.

#9

Сообщение rasta » 29 окт 2012, 19:18

Вроде как разобрался .
Как перезапустить openbox? а то изменения никак не влияют.

Аватара пользователя

adventurer
Супермодератор
Сообщения: 2912
Зарегистрирован: 15 июн 2011, 18:24

Re: Редактируем LXDE menu в ручную.

#10

Сообщение adventurer » 29 окт 2012, 21:33

Сам не знаю. :(
Мало того, что конфиг меню есть ещё в другом месте:

Код: Выделить всё

usr/share/lubuntu/openbox

Скопировал его в домашний каталог, но не получается редактировать.
Я всегда стараюсь сделать сам, перед тем как давать советы. Но вчера поторопился. :evil:
Пока не разобрался.


Вернуться в «How-To и FAQ»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость