Редактируем 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/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 следующего содержания:
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
Супермодератор
Сообщения: 2946
Зарегистрирован: 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
Супермодератор
Сообщения: 2946
Зарегистрирован: 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
Супермодератор
Сообщения: 2946
Зарегистрирован: 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
Можно воспользоваться графической утилитой obmenu, предварительно установив его в Synaptic.


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

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

#9

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

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

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

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

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

#10

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

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

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

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

Ответить