xdg-menu (Русский)

Состояние перевода:
На этой странице представлен перевод статьи
Xdg-menu
. Дата последней синхронизации: 25 июня 2025. Вы можете
помочь
синхронизировать перевод, если в английской версии произошли
изменения
.
xdg-menu
— это инструмент, генерирующий меню на основе информации из
XDG Desktop Menu
для следующих
оконных менеджеров
:
awesome
Blackbox
Fluxbox
FVWM2
IceWM
Openbox
twm
Window Maker
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. Его можно настроить с помощью файла
/etc/update-menus.conf
.
Для использования
установите
пакет
archlinux-xdg-menu
(xdg_menu).
В файле
/etc/update-menus.conf
выберите из списка оконные менеджеры, для которых нужно сгенерировать меню. Строки с символом # в начале считаются комментариями и игнорируются.
Все сгенерированные меню находятся в каталоге
/var/cache/xdg-menu/
. В разделе
#Примеры
показано, как настроить использование меню в оконных менеджерах.
Примеры
Awesome
С xdg_menu
$ xdg_menu --format awesome --root-menu /etc/xdg/menus/arch-applications.menu > ~/.config/awesome/archmenu.lua
Затем измените
rc.lua
как показано ниже.
Добавьте требуемый оператор для вашего нового файла
menu.lua
.
Добавьте запись в свой объект
awful.menu
для нового меню, которое вызывает
xdg-menu
.
...
xdg_menu = require("archmenu")
...

...
mymainmenu = awful.menu({ items = { { "awesome", myawesomemenu, beautiful.awesome_icon },
                                    { "Applications", xdgmenu },
                                    { "open terminal", terminal }
                                  }
                        })
...
IceWM
С xdg_menu
$ xdg_menu --format icewm --fullmenu --root-menu /etc/xdg/menus/arch-applications.menu >> ~/.icewm/programs
С update-menus
Раскоментируйте
icewm
в
/etc/update-menus.conf
.
Выполните
update-menus
от имени суперпользователя (root).
Сделайте символьную ссылку на
/var/cache/xdg-menu/icewm/programs
в
~/.icewm/programs
.
FluxBox
С xdg_menu
$ xdg_menu --format fluxbox --root-menu /etc/xdg/menus/arch-applications.menu > ~/.fluxbox/my-menu
Измените файл меню, чтобы включить сгенерированное меню.
Например добавьте строку:
[include] (my-menu)
С update-menus
Расскоментируйте
fluxbox
в
/etc/update-menus.conf
.
Выполните
update-menus
от имени суперпользователя (root).
Измените файл меню, чтобы включить сгенерированное меню.
Например добавьте строку:
[include] (/var/cache/xdg-menu/fluxbox/boxrc)
OpenBox
С xdg_menu
Сгенерируйте меню
$ xdg_menu --format openbox3 --root-menu /etc/xdg/menus/arch-applications.menu > xdg-menu.xml
и вручную добавьте его в свой
menu.xml
. Например, положите
xdg-menu.xml
в
menu.xml
и добавьте:
<menu id="Applications" />
в
root-menu
.
Как 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" />
Очень простой пример:
<?xml version="1.0" encoding="UTF-8"?>

<openbox_menu xmlns="http://openbox.org/3.4/menu">

<menu id="root-menu" label="Openbox 3">
  <menu id="applications" label="Applications" execute="xdg_menu --format openbox3-pipe --root-menu /etc/xdg/menus/arch-applications.menu" />
  <separator />
  <item label="Log Out">
    <action name="Exit">
      <prompt>yes</prompt>
    </action>
  </item>
</menu>

</openbox_menu>
С update-menus
Расcкоментируйте
openbox
в
/etc/update-menus.conf
.
Выполните
update-menus
от имени суперпользователя (root).
измените ваш файл
menu.xml
, чтобы включить сгенерированное меню.
Например, добавьте следующее в root-menu:
<menu id="xdg-menu" label="XDG Menu" execute="cat /var/cache/xdg-menu/openbox/menu.xml"/>
Twm
С 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
в
/etc/update-menus.conf
.
Добавьте в файл
/etc/X11/twm/system.twmrc
меню приложений (добавьте это в
defops menu
)::
"apps"          f.menu "Applications"
Выполните
update-menus
от имени суперпользователя (root).
Выполните
twm -f /var/cache/xdg-menu/twm/twmrc
.
Совет
Вы также можете добавить другие настройки в
/etc/X11/twm/system.twmrc
.
WindowMaker
С 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
в
/etc/update-menus.conf
.
Выполните
update-menus
от имени суперпользователя (root).
Добавьте
#include "/var/cache/xdg-menu/WindowMaker/wmrc"
в ваш файл меню.
Fvwm2
С xdg_menu
Сгенерируйте меню
$ xdg_menu --format fvwm2 --root-menu /etc/xdg/menus/arch-applications.menu >fvwm2-menu
И добавьте его в главное меню:
read fvwm2-menu

AddToMenu MenuFvwmRoot  "Root Menu"             Title
+                       "&0. XDG Menu"          Popup xdg_menu
С update-menus
Расcкоментируйте
fvwm2
в
/etc/update-menus.conf
.
Выполните
update-menus
от имени суперпользователя (root).
измените ваш файл
.fvwm2rc
, чтобы включить сгенерированное меню. Например:
AddToMenu MenuFvwmRoot  "Root Menu"             Title
+                       "&0. XDG Menu"          Popup xdg_menu
read /var/cache/xdg-menu/fvwm2/fvwm2rc
BlackBox
С xdg_menu
$ xdg_menu --format blackbox  --root-menu /etc/xdg/menus/arch-applications.menu >my-menu
Измените файл меню, чтобы включить сгенерированное меню.
Например добавьте строку:
[include] (my-menu)
С update-menus
Расcкоментируйте
blackbox
в
/etc/update-menus.conf
.
Выполните
update-menus
от имени суперпользователя (root).
Измените файл меню, чтобы включить сгенерированное меню.
Например добавьте строку:
[include] (/var/cache/xdg-menu/blackbox/boxrc)
Смотрите также
Sawfish#Menus
https://github.com/gapan/xdgmenumaker