#!/usr/bin/env python import gnome.applet import gtk import GDK import time import os last=-1 # Conversion done with rgb.txt and bc gtk.rc_parse_string(''' style "red" { bg[NORMAL] = "#ee0000" fg[NORMAL] = "#eedd82" } widget "*.red" style "red" style "green" { bg[NORMAL] = "#00cd66" fg[NORMAL] = "#000000" } widget "*.green" style "green" style "blue" { bg[NORMAL] = "#36648b" fg[NORMAL] = "#eedd82" } widget "*.blue" style "blue" ''') # alternative is to put this into file and use gtk.rc_parse("filename") style=("red","green","blue") def update_label(): global last global style fin=os.popen("battery 0",'r') str = fin.read() fin.close() label.set_text(str) curr=int(str[1:-1]) if curr>35: curr=2 elif curr>8: curr=1 else: curr=0 if last != curr: last=curr for w in [label,event_box,frame]: w.set_name(style[curr]) frame.show_all() return gtk.TRUE app = gnome.applet.AppletWidget("python-battery") frame = gtk.GtkFrame() label = gtk.GtkLabel() label.set_padding(1,1) # Create an EventBox and add it to our toplevel window event_box = gtk.GtkEventBox() frame.add(event_box) event_box.show() event_box.add(label) update_label() app.add(frame) app.set_tooltip("Python battery") app.show() gtk.timeout_add(2000, update_label) gtk.mainloop()