Basandome en el código que publique el otro día he decidido crear mi propio indicador para Skype. Ésta primera versión es very very simple, únicamente muestra un menu para salir, otro para abrir la aplicación y un icono con el logo de Skype de acuerdo al tema del escritorio. Pero al menos ya me permite acceder a Skype desde Natty cuando no tengo disponible un area de notificación.
Espero poder mejorar ésta versión para que si tienes mensajes sin leer, se actualice el icono del panel, indicando el número, es decir, que funcione de manera similar a como lo hace en la actualidad. Pero como no sé si tendré exito, prefiero publicar el código que tengo hasta la fecha y si alguien me quiere echar una mano, bienvenida sea.
Nota: para que os funcione teneis que tener instaldo el paquete skype-python y tener arrancada una instancia de Skype antes de ejecutar éste código pues lo primero que hace es pedir permiso para poder conectarse.
Sin más, el código actual:
#! /usr/bin/python
#::::::::::::::::::::::::::::::::
# SKYPE APP-Indicator
#::::::::::::::::::::::::::::::::
import gobject
import gtk
import appindicator
import os
# Importo el API de SKYPE
import Skype4Py
# Cuando pulse "Abrir Skype" muestro la ventana actual de Skype
def action1_clicked(widget,data=None):
print "Lanzando skype..."
skype.Client.Focus()
# Cuando se reciba un mensaje nuevo, actualizo el contador de mensajes pendientes
def OnMessageStatus(Message, Status):
print (Status)
print(Message.FromDisplayName + ': ' + Message.Body);
#if Status == 'RECEIVED':
# TODO: implementar aqui el cambio de icono del indicator, indicando numero de mensajes pendientes
# Tener diferentes juegos de iconos numericos y mostrar uno u otro segun el contador de pendientes
# Parecido al badge de Chrome
# Para salir
def quit(widget, data=None):
gtk.main_quit()
# Codigo principal
if __name__ == "__main__":
# Creo el indicador
ind = appindicator.Indicator ("example-simple-client", "indicator-messages", appindicator.CATEGORY_APPLICATION_STATUS)
ind.set_status (appindicator.STATUS_ACTIVE)
ind.set_attention_icon ("indicator-messages-new")
# Icono para el indicador
ind.set_icon("skype")
# creo un menu
menu = gtk.Menu()
# Skype item...
item = "Open Skype..."
menu_item = gtk.MenuItem(item)
menu_item.connect("activate", action1_clicked)
menu.append(menu_item)
# Exit item...
image = gtk.ImageMenuItem(gtk.STOCK_QUIT)
image.connect("activate", quit)
menu.append(image)
# hago visibles los elementos del menu
menu_item.show()
image.show();
# Asocio el menu al indicador
ind.set_menu(menu)
# Conectarme con SKYPE, debe de estar abierto...
skype = Skype4Py.Skype()
#skype.OnAttachmentStatus = OnAttach
skype.OnMessageStatus = OnMessageStatus;
print 'Connecting to Skype..'
#skype.Timeout = 97000
skype.Attach()
# Ejecuto el codigo principal
gtk.main()
Nota: Hay otro desarrollo parecido y con mejor pinta, pero tambien daba algunos errores el código, puede que lo revise y lo utilice de base.






Ánimo y que no decaiga. Yo estaré esperando tus avances. ¡Un saludo!
¡Buen trabajo! Te tengo una sugerencia, sin embargo
¿No sería mejor que el notificador funcione ‘dentro’ del notificador que tiene el ícono de email y donde aparecen las aplicaciones de email, IM, etc? A fin de cuentas, para eso se creó ese indicator especial
Si quieres código para ver como se hace, puedes consultar las fuentes de Specto; más precisamente este archivo: http://bazaar.launchpad.net/~specto/specto/main/annotate/head%3A/spectlib/tools/indicator.py
Un saludo, y esperemos que esto pueda salir de beta!
muy buena idea
Iba a decir exactamente lo mismo…
a rriesgo de repetir, yo tambien creo que deberia implementarse dentro del actual notificador de mensajes/chat
no se como hace instalar tengo ni idea
ayudarme
plz
que justo, estaba haciendo exactamente lo mismo. ¿tienes idea de como poner un icono que no esté en el tema de escritorio, o sea, una imagen .jpg, .gif o .png?
creo que se puede indicar la ruta o a las malas crear un nuevo set de iconos e instalarlos conjuntamente con el tema por defecto (Humanity).
Que tal.
Muy interesante tu Blog, perfecto..felicitaciones, me inspiraste a crear el mio….
Queria realizar una consulta. ¿Que editor de Python utilizas?
Saludos desde Cartagena, Colombia.
pues ultimamente “gedit” a secas.