Como generar automaticamente el menu de OpenBox

En OpenBox tenemos el llamado pipe-menu que es el clasico menu que todos los usuarios de Openbox conocen, el que aparece al hacerle click derecho sobre el escritorio.

Ese menu, como todo en este gestor de ventanas, es super personalizable. Pueden ustedes agregar su comandos personalizados y lanzadores de aplicaciones personalizados. Si googlean un poco encontraran toda clase de scripts y agregados para ese menu, desde controladores para varios reproductores de musica(MPD, Rhythmbox y demas), controles para el escritorio, checkers para el email y mas.

Es muy probable que tengan instalada la herramienta obmenu, que es una aplicacion grafica que permite modificar el menu sin tener que editar el archivo de configuracion XML.

Pero la cosa que es que normalmente uno instala y desinstala aplicaciones a lo loco y luego da pereza editar el menu de openbox para agregar las nuevas y eliminar las viejas. Por eso voy a explicar como generar ese menu de aplicaciones automáticamente. Pero solo la parte de las aplicaciones.

Al final explicare las ventajas y desventajas de cada metodo.

Opcion 1- Un script

Este script lo saque del menu que viene con Archbang, y si tienen esa distro entonces ya saben a cual me refiero.

Para el proposito de este mini tutorial, he eliminado todo el resto del menu para dejar solo la parte de las aplicaciones.

pipe menu openbox

Como hacerlo? Bueno, abrir el archivo /home/su_usuario/.config/openbox/menu.xml y pegarle este contenido:

<?xml version="1.0" encoding="utf-8"?>
<openbox_menu xmlns="http://openbox.org/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://openbox.org/                 file:///usr/share/openbox/menu.xsd">
	<menu id="root-menu" label="Openbox 3">
		<menu execute="python2 ~/.config/openbox/scripts/xdg-menu" id="apps-menu" label="Aplicaciones"/>
	</menu>
</openbox_menu>

Y luego crear un archivo en /home/tu_usuario/.config/openbox/scripts con el nombre xdg_menu con el siguiente contenido:

#!/usr/bin/env python
import gmenu, re, sys
from xml.sax.saxutils import escape

def walk_menu(entry):
	if entry.get_type() == gmenu.TYPE_DIRECTORY:
		print '<menu id="%s" label="%s">' \
			% (escape(entry.menu_id), escape(entry.get_name()))
		map(walk_menu, entry.get_contents())
		print '</menu>'
	elif entry.get_type() == gmenu.TYPE_ENTRY and not entry.is_excluded:
		print '	<item label="%s">' % escape(entry.get_name())
		command = re.sub(' [^ ]*%[fFuUdDnNickvm]', '', entry.get_exec())
		if entry.launch_in_terminal:
			command = 'xterm -title "%s" -e %s' % \
				(entry.get_name(), command)
		print '		<action name="Execute">' + \
			'<command>%s</command></action>' % escape(command)
		print '	</item>'

if len(sys.argv) > 1:
	menu = sys.argv[1] + '.menu'
else:
	menu = 'applications.menu'

print '<?xml version="1.0" encoding="UTF-8"?>'
print '<openbox_pipe_menu>'
map(walk_menu, gmenu.lookup_tree(menu).root.get_contents())
print '</openbox_pipe_menu>'

Y eso seria todo. Para probar pueden cerrar sesion y volver entrar. O usar el comando reconfigure de openbox

openbox --reconfigure

Opcion 2- MenuMaker

Con esta opcion lo que haremos sera generar el menu con un comando, no hay que editar ningun archivo. Lo primero sera instalar la aplicacion menumaker si es que no la tienen. En Arch Linux seria asi:

sudo pacman -S menumaker

Esta aplicacion puede generar menus para varios entornos de escritorio y gestores de ventanas asi que hay que especificarlo en el comando que vamos a usar. Tambien puede detectar aplicaciones que son solo para la consola y la mayoria no quiere tener esas aplicaciones en el menu, por tanto tambien hay que especificarlo.

El comando seria este:

mmaker -f Openbox -s Console

Si le sacan la opcion -s tambien agregara los programas para la consola.

Luego de reiniciar sesion o usar el comando reconfigure(ver arriba), el resultado final queda asi:

menumaker para openbox

Ventajas y desventajas de cada metodo

La principal ventaja del script es que el menu se genera solo siempre, en cambio con menu maker hay que estar corriendo el comando cada vez que se agreguen o quiten programas para mantener el menu actualizado.

Otra ventaja del script es que se agrega como una opcion mas del menu a las otras opciones que ya tengamos, en cambio con menu maker siempre estamos reescribiendo el archivo de configuracion y perdiendo las otras opciones personalizadas que tengamos.

Pero el script tiene una desventaja y es que a veces se tarda en buscar las aplicaciones y en generar el menu, unos segundos. En cambio con menumaker el menu que se genera es estatico y super rapido.

Se bueno y comparte!
Publicado el Categorías Entorno

Acerca de Perro

Ingeniero en Informática. Programador en PHP y Angular. Lo que mas adoro en el mundo es el conocimiento. Y el anime....y Japón...y el running...y bloguear claro y algunas otras cientos de cosas. Sigo buscando la manera de hacer mi primer millón.

Comenta!

16 Comentarios activo "Como generar automaticamente el menu de OpenBox"

avatar
Ordenar por:   Nuevos | Viejos
trackback

[...] los que tenéis el sistema operativo del pingüino, en Paraíso Linux vemos cómo generar automáticamente el menú de OpenBox. Se ofrecen dos alternativas, en vuestras manos [...]

trackback

[...] los que tenéis el sistema operativo del pingüino, en Paraíso Linux vemos cómo generar automáticamente el menú de OpenBox. Se ofrecen dos alternativas, en vuestras manos [...]

trackback

[...] los que tenéis el sistema operativo del pingüino, en Paraíso Linux vemos cómo generar automáticamente el menú de OpenBox. Se ofrecen dos alternativas, en vuestras manos [...]

RafaGCG
RafaGCG

Otia que invento, me lo apunto. voy a tener que estudiarme tu blog entero, je,je.
gracias!

Jona
Jona

Nice! en lo personal me olvide por completo de ese menú, prefiero usar un "busca-todo" como synapse.

Alexander Turcios
Alexander Turcios

Hola, quisiera saber si el script es solo para los de Archbang, o podria servir en ubuntu.

sefsinalas

Sirve para cualquiera que use Openbox, independientemente de la distribucion de linux que hayas instalado

Alexander Turcios
Alexander Turcios

OK, ya lo probe en ubuntu 12.04 y funciona excelente, lo mejor es que ya no hay que ya no pierdes lo que se ha personalizado, excelente aporte para este gestor de ventanas.

trackback

[...] fue creado en principio para OpenBox pero funciona perfectamente en Gnome y es una barra muy ligera que casi no ocupa recursos pero que [...]

trackback

[...] los que tenéis el sistema operativo del pingüino, en Paraíso Linux vemos cómo generar automáticamente el menú de OpenBox. Se ofrecen dos alternativas, en vuestras manos [...]

trackback

[...] fue creado en principio para OpenBox pero funciona perfectamente en Gnome y es una barra muy ligera que casi no ocupa recursos pero que [...]

DevNull.Malkavian

eso ya lo hace, pero quiero saber como pongo en español el menu :D
gracias :P

sefsinalas

Y el resto de la distro en que idioma esta?

DevNull.Malkavian

en español la gran parte de la distro, solo unas cuantas cosas en ingles, nada del otro mundo pero no se, me gustaria tenerlo completo XD
se me olvido decir que uso Manjaro

sefsinalas

No che...busque info y no encontre nada. Y recien me doy cuenta que mi menu tambien esta en ingles...aunque a mi no me molesta

DevNull.Malkavian

realmente no es molesto XD
solo pense que se podia :P
pero da igual :)
hay cosas mas interezantes en esta distro :P

wpDiscuz