That's a nice solution.
I think this is one area where having a global metadata database (e.g. Zeitgeist's database, Tracker, or any RDF store) would really pay off. Once all emails, contacts, files, and even notifications are entered into one central database then there are lots of interesting things that you can do later on with that information.
For example, in GNOME Zeitgeist, we tag files based on their path. One thing that I've been planning on doing for a long time is to track when each file was edited. (I'd like to do it through GtkRecentManager.) If we start getting serious about indexing items across the desktop, it's not hard to imagine the following scenario:
Mike is sitting at his computer and working in Inkscape when several emails arrive. In the past, Mike has clicked on the indicator icon to get rid of the dot but has always ignored the messages themselves. Therefore, the emails are assigned low priority and the icon only shows a green dot.
After a few minutes, Mike closes Inkscape and decides to work on his latest project at work. He opens up a file that a colleague emailed him and begins to edit it. The system notices that the tags on his document match the tags on one of the emails that he received, so the indicator icon changes to a yellow dot.
An hour later Mike receives another email and evolution automatically inserts the email into the global database. The notifications system receives is told that a new email arrived and automatically does a query for similar items. It notices that the document Mike is editing was sent to him by the same person who sent the new email. The indicator icon turns red to reflect this, and Mike receives a relevant notification.
[End of scenario]
There are several databases out there which support the above scenario. Zeitgeist's database can be accessed over dbus and the xesam spec offers an enticing way to get information from any database. Ideally, I'd love to see a platform with the following components:
1. A fast and generic rdf store (e.g. tracker.)
2. A system daemon which monitors which files are being edited and keeps track of the current user context. (For example, see Marco Polo for OS X.
http://www.symonds.id.au/marcopolo/)
3. A high level api for inserting information into the rdf store.
4. Several guis (e.g. zeitgeist, a display built into gnome shell, the indicator applet) which use the above components to help the user without getting in his/her face.
Natan