Xdg-menu (Español)

From ArchWiki
Esta traducción de Xdg-menu fue revisada el 2022-10-03. Si existen cambios puede actualizarla o avisar al equipo de traducción.

xdg-menu es una herramienta que genera Menus de XDG Desktop para los siguientes gestores de ventanas:

KDE, GNOME, Xfce y Enlightenment ya son compatibles con XDG.

Instalación

Instale el paquete archlinux-xdg-menu.

Jerarquía del menú

  • Aplicaciones
    • Accesibilidad
    • Accesorios
    • Desarrollo
    • Educación
    • Juegos
    • Gráficos
    • Internet
    • Multimedia
    • Oficina
    • Otros
    • Ciencia
    • Sistema

Configuración

xdg_menu ocupa tres fuentes para generar menús: el menú raíz, o en otras palabras, una plantilla de menú XML usualmente pasada por la consola; la fecha en cache de cuando se ejecutó por ultima vez; y una serie de archivos de configuración.

  • Puede encontrar plantillas de menú XML en /etc/xdg/menus.
  • Si cambia el código en xdg_menu} para alterar el diseño, asegúrese de eliminar todo en ~/.xdg_menu_cache, o va a pasar horas tratando de descifrar porque no se aplican sus cambios en el script de Perl.
  • Puede encontrar los archivos de configuración individuales de las aplicaciones en /usr/share/applications.

Hay más carpetas con archivos de configuración en /usr/share. En la mayoría de los casos no necesitará tocar esos. Aunque sí quiere cambiar ligeramente el diseño de su menú, puede modificar la plantilla. Los cambios más drásticos requieren que cambie el script de Perl xdg_menu. Si encuentra que las aplicaciones no aparecen o que tienen nombres raros, tendrá que ver su archivo .desktop en /usr/share/applications. Vea la especificación de entradas de escritorio.

Añadiendo entradas de escritorio desde otros directorios

Por defecto, el Xdg-menu sera populado con las aplicaciones que instales sus entradas de escritorio en /usr/share/applications. Para añadir aplicaciones que instalan sus entradas de escritorio en una carpeta de usuario como ~/.local/share/applications edite el archivo /etc/xdg/menus/arch-applications.menu y añada una etiqueta <AppDir> para el directorio deseado, como en lo siguiente:

/etc/xdg/menus/arch-applications.menu
<Menu>

  <Name>Applications</Name>
  <Directory>Arch-Applications.directory</Directory>
  <DefaultAppDirs/>
  <AppDir>/home/nombre-de-usuario/.local/share/applications</AppDir>
  <DefaultDirectoryDirs/>
  <DefaultMergeDirs/>
  ...

Uso (en inglés)

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 actualiza los menús de los gestores de ventanas con los datos de XDG y puede hacerlo automáticamente configurándolo.

Es un wrapper de xdg_menu que depende de /etc/update-menus.conf

Para usarlo, debe instalar el paquete archlinux-xdg-menu (xdg_menu)

En /etc/update-menus.conf debe seleccionar desde una lista de gestores de ventanas para los cuales quiere generar el menú. Puede poner comentarios con #.

Los menús son generados en /var/cache/xdg-menu/. Vea información especifica para varios gestores de ventanas en la sección #Ejemplos.

Ejemplos

Awesome

Con xdg_menu

$ xdg_menu --format awesome --root-menu /etc/xdg/menus/arch-applications.menu > ~/.config/awesome/archmenu.lua

Y, edite su rc.lua como se muestra más abajo.

  • Añada una declaración statment para su nuevo archivo menu.lua.
  • Añada una entrada para su objeto awful.menu para su nuevo menú que invoca a xdg-menu.
...
xdg_menu = require("archmenu")
...

...
mymainmenu = awful.menu({ items = { { "awesome", myawesomemenu, beautiful.awesome_icon },
                                    { "Applications", xdgmenu },
                                    { "open terminal", terminal }
                                  }
                        })
...

IceWM

Con xdg_menu

$ xdg_menu --format icewm --fullmenu --root-menu /etc/xdg/menus/arch-applications.menu >> ~/.icewm/programs

Con update-menus

  • Descomente icewm en /etc/update-menus.conf.
  • Ejecute update-menus como root.
  • Enlace /var/cache/xdg-menu/icewm/programs a ~/.icewm/programs.

FluxBox

Con xdg_menu

$ xdg_menu --format fluxbox --root-menu /etc/xdg/menus/arch-applications.menu > ~/.fluxbox/mi-menu

Cambie su archivo de menú para que incluya el menú generado.

Por ejemplo, añada la linea:

[include] (mi-menu)

Con update-menus

  • Descomente fluxbox en /etc/update-menus.conf.
  • Ejecute update-menus como root.
  • Cambie su archivo de menú para que incluya el menú generado.

Por ejemplo, añada la linea:

[include] (/var/cache/xdg-menu/fluxbox/boxrc)

OpenBox

Con xdg_menu

Genere el menú con:

$ xdg_menu --format openbox3 --root-menu /etc/xdg/menus/arch-applications.menu > xdg-menu.xml

Y añadalo manualmente a su menu.xml. Por ejemplo, agregue xdg-menu.xml en menu.xml y añada:

<menu id="Applications" />

En root-menu.

Como pipe menu (menú de tubería)

Usar xdg_open como menú de tubería tiene el beneficio añadido de tener un menú que se actualiza automáticamente cuando se instalan aplicaciones nuevas.

Añada lo siguiente en alguna parte de su menu.xml entre las etiqueta de su menú raíz (root menu):

<menu id="applications" label="Applications" execute="xdg_menu --format openbox3-pipe --root-menu /etc/xdg/menus/arch-applications.menu" />

Un ejemplo básico:

<?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>

Con update-menus

  • Descomente openbox en /etc/update-menus.conf.
  • Ejecute update-menus como root.
  • Cambie su archivo menu.xml para que incluya el menú generado.

Por ejemplo, añada lo siguiente a root-menu:

<menu id="xdg-menu" label="XDG Menu" execute="cat /var/cache/xdg-menu/openbox/menu.xml"/>

Twm

Con xdg_menu

Ejecute:

$ xdg_menu --format twm --root-menu /etc/xdg/menus/arch-applications.menu >menu-twm

Y añadalo manualmente a twmrc. En el caso de un derivado de twm con preprocesado m4 como vtwm o ctwm, puede ser incluido añadiendo:

sinclude(`/UBICACION/DE/SU/menu-twm')

A *twmrc.

Con update-menus

  • Descomente twm en /etc/update-menus.conf.
  • Añada a /etc/X11/twm/system.twmrc un archivo de menú de aplicaciones (añadalo en defops menu):
 "apps"          f.menu "Applications"
  • Ejecute update-menus como root.
  • Ejecute twm -f /var/cache/xdg-menu/twm/twmrc.
Sugerencia: También puede querer añadir sus otras personalizaciones a /etc/X11/twm/system.twmrc.

WindowMaker

Con xdg_menu

Ejecute:

$ xdg_menu --format WindowMaker --root-menu /etc/xdg/menus/arch-applications.menu >mi-menu-wm

Y añada:

#include "mi-menu-wm"

En su archivo de menú de WindowMaker.

También puede usar «Application Menu Definitions» en WPrefs, y añadir el comando de xdg como parámetro en el objeto «Generated Submenu».

Con update-menus

  • Descomente WindowMaker en /etc/update-menus.conf.
  • Ejecute update-menus como root.
  • Añada:
#include "/var/cache/xdg-menu/WindowMaker/wmrc"

A su archivo de menú.

Fvwm2

Con xdg_menu

Genere el menú:

$ xdg_menu --format fvwm2 --root-menu /etc/xdg/menus/arch-applications.menu >fvwm2-menu

Y añada el menú en el menú raíz:

read fvwm2-menu

AddToMenu MenuFvwmRoot  "Root Menu"             Title
+                       "&0. XDG Menu"          Popup xdg_menu

Con update-menus

  • Descomente fvwm2 en /etc/update-menus.conf.
  • Ejecute update-menus como root.
  • Cambie su archivo .fvwm2rc para que incluya el menú generado. Por ejemplo:
AddToMenu MenuFvwmRoot  "Root Menu"             Title
+                       "&0. XDG Menu"          Popup xdg_menu
read /var/cache/xdg-menu/fvwm2/fvwm2rc

BlackBox

Con xdg_menu

$ xdg_menu --format blackbox --root-menu /etc/xdg/menus/arch-applications.menu >mi-menu

Cambie su archivo de menú para que incluya el menú generado.

Por ejemplo, añada la linea:

[include] (mi-menu)

Con update-menus

  • Descomente blackbox en /etc/update-menus.conf.
  • Ejecute update-menus como root.
  • Cambie su archivo de menú para que incluya el menú generado.

Por ejemplo, añada la linea:

[include] (/var/cache/xdg-menu/blackbox/boxrc)

Véase también