Xdg-menu (Español)
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 [--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 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
$ 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 archivomenu.lua
. - Añada una entrada para su objeto
awful.menu
para su nuevo menú que invoca axdg-menu
.
... xdg_menu = require("archmenu") ... ... mymainmenu = awful.menu({ items = { { "awesome", myawesomemenu, beautiful.awesome_icon }, { "Applications", xdgmenu }, { "open terminal", terminal } } }) ...
IceWM
$ xdg_menu --format icewm --fullmenu --root-menu /etc/xdg/menus/arch-applications.menu >> ~/.icewm/programs
- Descomente icewm en
/etc/update-menus.conf
. - Ejecute
update-menus
como root. - Enlace
/var/cache/xdg-menu/icewm/programs
a~/.icewm/programs
.
FluxBox
$ 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)
- 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
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.
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>
- 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
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
.
- Descomente twm en
/etc/update-menus.conf
. - Añada a
/etc/X11/twm/system.twmrc
un archivo de menú de aplicaciones (añadalo endefops menu
):
"apps" f.menu "Applications"
- Ejecute
update-menus
como root. - Ejecute
twm -f /var/cache/xdg-menu/twm/twmrc
.
/etc/X11/twm/system.twmrc
.WindowMaker
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».
- 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
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
- 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
$ 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)
- 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)