Per realizzarne una si parte prima di tutto sul definire cosa si vuole visualizzare e come recuperarlo. Qui di seguito c'e' un piccolo script, scritto in python, che recupera lo spazio libero di una partizione (in base al punto di mount):
#!/usr/bin/env python
import pygtk
pygtk.require('2.0')
import gtk
import gnomeapplet
import gobject
import commands
import os
interval = 1000
def get_space():
mount = "/home"
space = os.statvfs(mount)
return mount + " " + str((space.f_frsize * space.f_bavail)/(1024*1024*1024)) + " Gb"
def update_value(label):
label.set_text(get_space())
return True
def applet_factory(applet, iid):
label = gtk.Label(get_space())
applet.add(label)
applet.show_all()
gobject.timeout_add(interval, update_value, label)
return True
gnomeapplet.bonobo_factory("OAFIID:GNOME_DiskSpace_Factory", gnomeapplet.Applet.__gtype__, "DiskSpace", "0", applet_factory)
Ora per visualizzare la nostra applet nel pannello ci viene in aiuto un modulo di python denominato "gnomeapplet" che serve proprio per realizzare applet per il pannello di gnome.
Detto questo creiamo soltanto un file con tutte le specifiche da passare a Bonobo (uno dei componenti fondamentali di gnome). Quest'ultimo ci dara' la possibita' di aggiungere la nostra applet proprio dal menu del pannello di controllo! :)
Il file che andremo a creare si dovra' chiamare identicamente alla direttiva "gnomeapplet.bonobo_factory(...)" con l'aggiunta del suffisso ".server":
<oaf_info>
<oaf_server iid="OAFIID:GNOME_DiskSpace_Factory" type="exe" location="/usr/bin/diskspace.py">
<oaf_attribute name="repo_ids" type="stringv"><item value="IDL:Bonobo/GenericFactory:1.0"/><item value="IDL:Bonobo/Unknown:1.0"/></oaf_attribute><oaf_attribute name="name" type="string" value="DiskSpace"/><oaf_attribute name="description" type="string" value="Semplice monitor dello spazio sull'hard disk"/></oaf_server>
<oaf_server iid="OAFIID:GNOME_DiskSpace" type="factory" location="OAFIID:GNOME_DiskSpace_Factory"><oaf_attribute name="repo_ids" type="stringv"><item value="IDL:GNOME/Vertigo/PanelAppletShell:1.0"/><item value="IDL:Bonobo/Control:1.0"/><item value="IDL:Bonobo/Unknown:1.0"/></oaf_attribute><oaf_attribute name="name" type="string" value="DiskSpace"/><oaf_attribute name="description" type="string" value="Semplice monitor dello spazio sull'hard disk"/><oaf_attribute name="panel:category" type="string"
value="Utility"/><oaf_attribute name="panel:icon" type="string" value="disk.png"/></oaf_server>
</oaf_info>
Da notare che in quest'ultimo file si e' specificato il percoso in cui e' presente il primo script python (/usr/bin/diskspace.py) che deve essere reso eseguibile. A questo punto per far si che la nostra applet sia accessibile all'inserimento nel pannello ci basta posizionare il file GNOME_DiskSpace.server all'interno della cartella /usr/lib/bonobo/servers.
Il tutto e' fatto e ci possiamo godere la nostra piccola applet aggiungendola al pannello di gnome!
Link utile: http://projects.gnome.org/ORBit2/appletstutorial.html


0 commenti:
Posta un commento