Tips PyPanel y Bmpanel2
Hola a todos, bueno esta entrada surge tras un comentario de Teh en la guía de openbox, para agregarle un par de cosas a pypanel, yo no uso pypanel jejeeje, así que intente llevar todo eso a bmpanel2, aunque casi todo lo de a continuación sirve para ambos.
Menu de Openbox en el panel
Al usar algún gestor de ventanas de vez en cuando se extraña el menú del panel, con esto podemos usar el menú de openbox en nuestro panel. Para esto necesitamos instalar xdotool, con
yaourt -S xdotool
Luego abrimos obkey y agregamos a la combinación de teclas que queramos la opción «ShowMenu», en este caso la combinación que utilizare sera Ctrl+Alt+E, quedando mas o menos así
Y luego agregamos esto a un lanzador en la configuración del panel, para pypanel editamos «~/pypanelrc» y agregamos en «LAUNCH_LIST» la linea
("xdotool key ctrl+alt+e", "/ruta/icono.png")
Siendo /ruta/icono.png la ruta del icono que queramos poner. En bmpanel2 para agregar el lanzador lo hacemos editando el archivo «~/.config/bmpanel2/bmpanel2rc» y en después de la linea «launchbar» agregamos
exec xdotool key ctrl+alt+e
icon /ruta/icono.png
Con esto al presionar el lanzador en el panel se abrirá el menú de openbox.
MyGtkMenu
Bueno ami en realidad lo anterior no me gusto demasiado ya que el menú no tenia icono cosa que para el escritorio me parece perfecto, pero no para el panel, ademas como el menu aparece bajo el cursor si presionas y mueves rapido el cursor aparecera en otro lugar, por lo que busque otra forma de hacer lo mismo… Y buscando llegue a «mygtkmenu«, lo interesante de este menu, es que permite iconos de distintos tamaños tanto en submenus como en los lanzadores, ademas puede configurarse para aparecer en una posición determinada. Lo podemos instalar con
yaourt -S mygtkmenu
Y creamos un archivo de configuracion en «~/.mygtkmenu» con
touch ~/.mygtkmenu
Y lo editamos con nuestro editor de texto favorito. La configuración de este menú es un poco mas complicada ya que debemos añadir cada lanzador o submenu con texto, pero el resultado es muy bueno, mi configuración de mygtkmenu esta aquí por si a alguien le sirve, es algo como
# …………… Beginning of menu ……………
MenuPosition = 0 777 # Optional
iconsize = 28
item=. XaBz-Laptop
cmd= thunar
icon= /home/xabz/.icons/CD10b/128×128/apps/gnome-color-chooser.png
iconsize = 20SEPARATOR
Submenu = Accesorios # see man consolehelper
icon = /home/xabz/.icons/CD10b/128×128/categories/applications-accessories.png
item=Beaver
cmd=beaver
icon=/usr/share/pixmaps/beaver.png
Luego debemos agregar el menu a un lanzador tal como en el caso anterior, ahora el comando para ejecutar sera
mygtkmenu /home/usuario/.mygtkmenu
remplazando «usuario» por nuestro usuario. El resultado (con la configuración del link) sera
La transparencia del menú se puede lograr con xcompmgr-dana, como explique en la guía de openbox.
Calendario en el panel
Bueno esto lo vi en el blog de urukrama, la idea es usar dzen2 para mostrar un calendario al presionar el reloj del panel, para esto necesitamos tener instalado «dzen2» (lo instalamos con yaourt) y necesitamos alguno de los scripts que están en la entrada antes mencionada, en este caso yo utilice el que se encuentra aquí, el cual muestra el mes actual y el siguiente, lo modifique un poco (comente un par de lineas) y hice que solo mostrara el mes actual quedando así
#!/bin/sh
SERVICE=’dzen2′
if ps ax | grep -v grep | grep $SERVICE > /dev/null
then
killall dzen2
else
TODAY=$(expr `date +’%d’` + 0)
MONTH=`date +’%m’`
YEAR=`date +’%Y’`
(echo ‘^bg(#111111)^fg(#3488DE)’`date +’%A %d %B %Y %n’`; echo
\
# current month, hilight header and today
cal \
| sed -re ‘s/^/ /’ | sed -re «s/^(.*[A-Za-z][A-Za-z]*.*)$/^fg(#3488DE)^bg(#111111)\1/;s/(^|[ ])($TODAY)($|[ ])/\1^bg(#3488DE)^fg(#111111)\2^fg(#6c6c6c)^bg(#111111)\3/») \
| dzen2 -p -fg ‘#6c6c6c’ -bg ‘#111111’ -fn ‘-*-fixed-*-*-*-*-12-*-*-*-*-*-*-*’ -x 1111 -y 760 -w 160 -l 9 -e ‘onstart=uncollapse;key_Escape=ungrabkeys,exit’
fi
Lo anterior lo guardamos en algún lugar (supongamos que en «~/bin» con el nombre de calendario) y le damos permisos de ejecución con
chmod +x ~/bin/calendario
Luego para agregarlo a nuestro panel, en el caso de pypanel en ~/pypanelrc agregamos lo siguiente
#——————————–
def clockButtonEvent(pp, button):
#——————————–
«»» Button event handler for the panel’s clock object «»»if button == 1:
os.system(«/home/usuario/bin/calendario &»)
elif button == 2:
pass
elif button == 3:
os.system(«osmo &»)
elif button == 4:
pp.showDesktop()
elif button == 5:
pp.showDesktop()
La linea «os.system(«/home/usuario/bin/calendario &»)» varia respecto al nombre de usuario, lugar y nombre en donde se aya guardado el script.
Para bmpanel2 lo agregamos editando «~/.config/bmpanel2/bmpanel2rc» y agregando al final la siguiente linea
clock_prog /home/usuario/bin/calendario
Ahora al presionar sobre el reloj de nuestro panel nos mostrara algo así
Fake Menu Bmpanel2
Ayer se me ocurrió hacer algo medio extraño, como bmpanel2 incluye lanzadores, me dije podría poner tres iconos seguidos que dijeran menú y con un icono de arch… Lo probé, pero no me funciono :(, las letras quedaban muy separadas por los espacios de los iconos. Así que me puse a modificar el tema que uso (Curvy-blue), logrando hacer lo que pretendia.
Lo primero es ver que tema usaremos, luego vamos a la carpeta del tema, en mi caso ~/.local/share/bmpanel2/themes/Curvy-blue, editar el archivo «theme» y cambiar el background del panel quedando así
En un comienzo se llamaba tile.png, luego copiamos la imagen tile.png a tile_xabz.png (o el nombre que quieran), debo decir que no utilizo el «desktop switcher» por lo que lo tengo comentando, no se si pueda producir errores en caso de estar activado. Abrimos la imagen tile_xabz.png con gimp y escalamos la imagen, para esto vamos a «Imagen > Escalar la imagen…» dejamos la altura igual y el ancho del tamañano de nuestra resolucion de pantalla, en mi caso 1280
Ahora en un comienzo de la imagen podemos hacer un «boton» de menu, la imagen que hice yo es
Luego creamos una imagen de 20×20 (o de cualquier tamaño) sin nada, la idea es que sea transparente y sirva para ocupar espacio en los lanzadores y así dejar que se vea nuestro «menú» anterior.
Luego, editamos nuestro «~/.config/bmpanel2/bmpanel2rc» y agregamos tres lanzadores al comienzo, uno con el icono de archlinux y dos con la imagen transparente, a los tres les ponemos que ejecuten nuestro menú (en este caso mygtkmenu) quedara algo así.
Luego de todo esto nuestro panel tendrá un menú y al presionar la hora mostrara un calendario :), como esto
Bueno espero les sirva, se que hice mas enfacis a bmpanel2, pero es simplemente por que yo lo uso. Muchas gracias por los comentarios y visitas, espero me ayuden si hay algo mal explicado o confuso, ya que no esto no lo revise mucho, mas que nada por tiempo, pero ya la semana siguiente podre descansar 🙂 así que ahi volveré a escribir más.
Saludos a todos y hasta la proxima.
XaBz