Es increíble la cantidad de posibilidades que ofrece python. Aquí pongo un ejemplo de lo necesario para crear algo así:
python alerta.py “Name popup” “<
span weight=\"bold\">Bold<
/span>: contents"
Código fuente:
#!/usr/bin/python
# notify-bubble: Alert bubble + systray icon notification system
#
# Author: John Dong <jdong@ubuntu.com>
# http://ubuntuforums.org/archive/index.php/t-887173.html
# Feel free to use/tweak/modify to your free will.
import gtk
import gobject
import pynotify
icon=None
notify=None
# Definición de la función que creará el icono
def create_icon(title, text=""):
global icon #Declara la variable "icon" como global
pynotify.init("pynotify")
icon=gtk.status_icon_new_from_icon_name("important") # Crea un icono de estado a partir del tema actual
icon.set_visible(False) # Hace invisible el icono
icon.connect('activate', quit) # Asocia el evento 'activate' del icono a la funcion "quit"
icon.set_tooltip("%s\n(%s)" % (title, text)) # Establece el popup del icono
icon.set_visible(True) # Hace el icono visible
ui_idle() # Invoca la función de espera de eventos (para que el icono permanezca)
gobject.timeout_add (500, show_notification,(title, text, icon)) # Llama a la función de mostrar la notificación
def show_notification(data):
global notify #Declara la variable "notify" como global
(title, text, icon) = data #Extrae los valores del parámetro
notify = pynotify.Notification(title,text,"pynotify") # Crea la notificacion
notify.set_urgency(pynotify.URGENCY_NORMAL) # Establece la urgencia de la notificación
notify.attach_to_status_icon(icon) # Asocia la notificacion con un icono de estado
notify.set_timeout(20000) # Duración de la notificación
notify.show() # Muestra la notificación
# Bucle de espera de eventos del icono
def ui_idle():
while gtk.events_pending():
gtk.main_iteration(False)
# Función de salida de la aplicación
def quit(data):
gtk.main_quit()
notify.close() # Cerrar también la notificación
# Aplicación principal
import sys
# Texto por defecto a mostrar (para cuando se invoca sin parámetros)
name="Name popup"
detail="<span weight=\"bold\">Bold</span>: content"
try:
# Lectura de parámetros de la línea de comandos
name=sys.argv[1]
detail=sys.argv[2]
except IndexError:
pass
#Crear el icono con la notificación
create_icon(name, detail)
print "Pynotify alert spawned. Clicking the alert tray icon will exit this script too..."
gtk.main() (bucle general de la aplicación
Para copiar el código usar el icono de arriba a la derecha (el de las dos flechas azules).
Fuente ubuntuforums