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

From ArchWiki
Состояние перевода: На этой странице представлен перевод статьи Xdg-menu. Дата последней синхронизации: 14 февраля 2022. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

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. Его можно настроить с помощью файла /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)

Смотрите также