Xdg-menu (Русский)
xdg-menu — это инструмент, генерирующий меню на основе информации из XDG Desktop Menu для следующих оконных менеджеров:
KDE, GNOME, Xfce и Enlightenment уже имеют совместимость с XDG.
Установка
Установите пакет archlinux-xdg-menu.
Иерархия меню
- Applications (Приложения)
- Accessibility (Специальные возможности)
- Accessories (Стандартные)
- Development (Разработчка)
- Education (Образование)
- Games (Игры)
- Graphics (Графика)
- Internet (Интернет)
- Multimedia (Мультимедиа)
- Office (Офис)
- Other (Прочее)
- Science (Наука)
- System (Система)
Настройка
Xdg_menu опирается на сведения для генерации меню из трёх источников: root menu (главное меню) или другими словами, шаблон меню XML, как правило передающихся в командной строке, информация и ряд конфигурационных файлов кэшируются, после последнего запуска.
- Вы можете найти несколько шаблонов меню в
/etc/xdg/menus
. - После изменения кода в xdg_menu, чтобы изменить схему, убедитесь, что вы удалили всё в
~/.xdg_menu_cache
, иначе вы потратите много времени, пытаясь выяснить, почему ваши изменения в скрипатх Perl не принимаются. - Вы можете найти индивидуальные конфигурации приложений в
/usr/share/applications
.
Другие каталоги файлов конфигурации можно найти в каталоге /usr/share
. В большинстве случаев вам не нужно трогать их. Если вы хотите, изменить то, как ваше меню располагается, вы можете изменить шаблон меню. Основные изменения требуют тонкой настройки скрипта perl xdg_menu. Если вы обнаружили, что приложения не отображаются или что они вызывают что-то не то, то вам нужно будет посмотреть в файл .desktop в /usr/share/applications
. Проверьте этот файл стандартов.
Добавление записей рабочего стола из других каталогов
По умолчанию, меню XDG будет заполняться приложениями которые устанавливают свои desktop entries в /usr/share/applications
. Чтобы добавить в меню приложение, которое устанавливает свои desktop entry в пользовательский каталог, такой как ~/.local/share/applications
, отредактируйте файл /etc/xdg/menus/arch-applications.menu
и добавьте тэг <AppDir>
для соответствующего каталога, смотрите ниже:
/etc/xdg/menus/arch-applications.menu
<Menu> <Name>Applications</Name> <Directory>Arch-Applications.directory</Directory> <DefaultAppDirs/> '''<AppDir>/home/''Ваш логин''/.local/share/applications</AppDir>''' <DefaultDirectoryDirs/> <DefaultMergeDirs/> ...
Использование
xdg_menu
xdg_menu [--format <format>] [--desktop <desktop>] [--charset <charset>] [--language <language>] [--root-menu <root-menu>] [--die-on-error] [--fullmenu] [--help] format - output format possible formats: twm, WindowMaker, fvwm2, icewm, ion3 blackbox, fluxbox, openbox, xfce4, openbox3, openbox3-pipe, awesome readable default: WindowMaker fullmenu - output a full menu and not only a submenu desktop - desktop name for NotShowIn and OnlyShowIn default: the same as format charset - output charset default: <locale> language - output language default: <locale> root-menu - location of root menu file default: /opt/gnome/etc/xdg/menus/applications.menu die-on-error - abort execution on any error, default: try to continue verbose - print debugging information help - print this text
update-menus
update-menus обновляет меню оконных менеджеров на основе данных XDG и может быть настроен на автоматическое обновление.
Это скрипт-оболочка xdg_menu. Его можно настроить с помощью файла .
Для использования установите пакет archlinux-xdg-menu (xdg_menu).
В файле выберите из списка оконные менеджеры, для которых нужно сгенерировать меню. Строки с символом # в начале считаются комментариями и игнорируются.
Все сгенерированные меню находятся в каталоге . В разделе #Примеры показано, как настроить использование меню в оконных менеджерах.
Примеры
С xdg_menu
$ xdg_menu --format awesome --root-menu /etc/xdg/menus/arch-applications.menu > ~/.config/awesome/archmenu.lua
Затем измените как показано ниже.
- Добавьте требуемый оператор для вашего нового файла .
- Добавьте запись в свой объект
awful.menu
для нового меню, которое вызываетxdg-menu
.
С xdg_menu
$ xdg_menu --format icewm --fullmenu --root-menu /etc/xdg/menus/arch-applications.menu >> ~/.icewm/programs
С update-menus
- Раскоментируйте icewm в .
- Выполните от имени суперпользователя (root).
- Сделайте символьную ссылку на в .
С xdg_menu
$ xdg_menu --format fluxbox --root-menu /etc/xdg/menus/arch-applications.menu > ~/.fluxbox/my-menu
Измените файл меню, чтобы включить сгенерированное меню.
Например добавьте строку:
[include] (my-menu)
С update-menus
- Расскоментируйте fluxbox в .
- Выполните от имени суперпользователя (root).
- Измените файл меню, чтобы включить сгенерированное меню.
Например добавьте строку:
[include] (/var/cache/xdg-menu/fluxbox/boxrc)
С xdg_menu
Сгенерируйте меню
$ xdg_menu --format openbox3 --root-menu /etc/xdg/menus/arch-applications.menu > xdg-menu.xml
и вручную добавьте его в свой . Например, положите в и добавьте:
<menu id="Applications" />
в .
Как pipe menu
Использование xdg_open как pipe menu, дает дополнительное преимущество получить меню, которое автоматически обновляется при установке новых приложений.
Добавьте следующее, где-то, внутри вашего menu.xml между вашими тэгами root menu
<menu id="applications" label="Applications" execute="xdg_menu --format openbox3-pipe --root-menu /etc/xdg/menus/arch-applications.menu" />
Очень простой пример:
С update-menus
- Расcкоментируйте openbox в .
- Выполните от имени суперпользователя (root).
- измените ваш файл , чтобы включить сгенерированное меню.
Например, добавьте следующее в root-menu:
<menu id="xdg-menu" label="XDG Menu" execute="cat /var/cache/xdg-menu/openbox/menu.xml"/>
С xdg_menu
Используйте
$ xdg_menu --format twm --root-menu /etc/xdg/menus/arch-applications.menu >my-twm-menu
И добавьте его в twmrc вручную. В случае с производным twm препроцессингом m4, таким как vtwm или ctwm, он может быть включен путём добавления
sinclude(`/PATH/TO/my-twm-menu')
в *twmrc
.
С update-menus
- Расcкоментируйте twm в .
- Добавьте в файл меню приложений (добавьте это в
defops menu
)::
"apps" f.menu "Applications"
- Выполните от имени суперпользователя (root).
- Выполните .
С xdg_menu
Используйте
$ xdg_menu --format WindowMaker --root-menu /etc/xdg/menus/arch-applications.menu >my-wm-menu
и добавьте
#include "my-wm-menu"
в ваш файл меню WindowMaker.
Вы можете также использовать WPrefs "Application Menu Definitions", и добавить команду XDG в качестве параметра в объект "Generated Submenu".
С update-menus
- Расcкоментируйте WindowMaker в .
- Выполните от имени суперпользователя (root).
- Добавьте
#include "/var/cache/xdg-menu/WindowMaker/wmrc"
в ваш файл меню.
С xdg_menu
Сгенерируйте меню
$ xdg_menu --format fvwm2 --root-menu /etc/xdg/menus/arch-applications.menu >fvwm2-menu
И добавьте его в главное меню:
С update-menus
- Расcкоментируйте fvwm2 в .
- Выполните от имени суперпользователя (root).
- измените ваш файл , чтобы включить сгенерированное меню. Например:
AddToMenu MenuFvwmRoot "Root Menu" Title + "&0. XDG Menu" Popup xdg_menu
read /var/cache/xdg-menu/fvwm2/fvwm2rc
С xdg_menu
$ xdg_menu --format blackbox --root-menu /etc/xdg/menus/arch-applications.menu >my-menu
Измените файл меню, чтобы включить сгенерированное меню.
Например добавьте строку:
[include] (my-menu)
С update-menus
- Расcкоментируйте blackbox в .
- Выполните от имени суперпользователя (root).
- Измените файл меню, чтобы включить сгенерированное меню.
Например добавьте строку:
[include] (/var/cache/xdg-menu/blackbox/boxrc)