update: note that this turned out not to be all that useful – tracking active windows into hamster turned out better.
in response to gnome bug 639018 and my general desire to track automatically what i’ve done, i’ve made a python script which connects to the zeitgeist activity monitor and copies its messages to the hamster time tracker. it goes like this:
#!/usr/bin/python # monitor zeitgeist and do stuff from zeitgeist.client import ZeitgeistClient from zeitgeist.datamodel import TimeRange, Event from gobject import MainLoop import hamster.client class hamster_handler(hamster.client.Storage): def handler(self, tr, ev): # because the mainloop appears to catch exceptions from traceback import print_exc from urlparse import urlparse try: # FIXME insert clever rules here app = urlparse(ev.actor).netloc desk = open("/usr/share/applications/" + app) comments = filter(lambda x: x.startswith("Comment[en_GB]="), desk) comment = comments.split("=").strip() self.add_fact(comment + " - " + ev.subjects.text) except: print_exc() hh = hamster_handler() ml = MainLoop() ZeitgeistClient().install_monitor( TimeRange.from_now(), [Event()], hh.handler, hh.handler) ml.run()
It never ends until it’s killed so you’ll probably want to run it in the background – i’ve added it to my session ‘startup applications’. if it doesn’t appear to be working then run it from the command line instead – you should see some error messages if it’s failing to update hamster.
on my fedora 14 system i only get updates for local text files, images and videos opened in gedit, EoG and totem. on ubuntu i imagine you’ll get a lot more updates. OTOH, on ubuntu the script will probably need some tweaking for the hard-coded paths and locale.
i’ve decided not to link this to my hamster-to-empathy updater – i don’t really want to broadcast a stream of every little thing i do .. particularly if my IM accounts include twitter and facebook status feeds. 🙂