2009-07-17

EvoAqua?

I decided that I actually really do want the functionality sooner than later, though I'm not currently interested enough to run Tracker from git to write that metadata registrar. (Honestly, I don't really use Evolution or Tracker at all as they generally get in the way.) I am already running mail-notification so I thought that perhaps I could add it as a feature there. Despite a test release of gob2 2.0.16, I still cannot get mail-notification .gob files to parse/compile properly. (Yes, I had separately tried applying the relevant mailing list patches.) So, that was a disaster. But you know what did work? ... patching notification-daemon! I wrote a really ugly prototypy patch to just see if it would work or work well, and it does, more or less.

In this case, mail-notification uses libnotify(right?) to send notices to notification-daemon which then publishes them in a notification bubble. Other pieces of software use this, too, and I believe Pidgin can use it via a plugin. The current "patch" I wrote is a couple dozen lines in daemon.c's notify_daemon_notify_handler() to read aloud whatever notice it got. It's just a terrible hack right now. I even added a small function to strip the XML elements off of the notice, since I dislike hearing Speech Dispatcher reading markup. However, this might be a good place to add some generic notice-speaking code. Add a speech.c file and add a couple options; things could be nice. It would mean that IMAqua might be less necessary, too. Of course, there are some cooler things I can do when writing a plugin or a patch for an application itself instead of relying on reading its notification-bubble text, but the latter might be sufficient in some cases, especially those where I don't want to try to write a plugin or patch :) It might also prove more generic :)