LedEffects is an Android service designed to manage notifications:
Originally it was specifically designed for XDAndroid or any other Android distro running on linux-msm.
It now has been extended to handle more phones (e.g. my unrooted HTC Desire).
Supported effects are:

2010-04-05 v0.6.1.1: fixed a bug preventing the sleep effect to be applied properly after changing it in preferences
2010-04-07 v0.7.0.0: added sound and vibration option for each effect and mute setting for specific timespans
2010-06-27 v0.9.0.0: added support for multiple devices (Desire)
2010-06-28 v0.9.0.1: bugfixes: the sound checkbox is taken into account properly, the player is terminated properly (timed or when e.g. a call is responded)
LedEffects rely on the concept of Broadcasts to receive events from the system or from other apps. For that to work apps must have been designed for that.
email: the default email client (gmail and email) are poorly designed and do not care about the surrounding world. On the other hand devs of
K9-Mail have added broadcasts to their architecture and LedEffects of course support those.
IM: neither the gtalk client nor any other IM client I know of (fring, ebuddy, nimbuzz) care broadcasting. That's one of the reasons why I develop
XtreMePP, an open XMPP client.
Discussion
com.asksven.ledeffects.manager.EffectsFassade:
Lines 93 and 163
The code checks to see if there is a stored sound path, but does not check whether the sound is enabled or not (the checkbox to the left of the sound picker in the preferences UI.
Additionally, setting the sound to "Silent" does not have the intended result (the sound will remain the previously chosen sound.
Another bug, source unknown: when playing the notification sound for an event e.g. Ring, the sound does not stop once the phone is picked up.
ty for the feedback. I've fixed the unchecked sound problem (v0.9.0.1). That same hotfix release fixes the inconsisitency with the ringing sound upon pickup (hopefully).
As per the "silent" sound I have to have a closer look as it seems it's not returned properly by the intent for selecting a sound.
Thanks for LedEffects. Exactly what I was looking for to run on my unrooted HTC Desire. I modified your source slightly (thanks for being so kind and publishing the source btw), changed the preferences to use Android Preferences Screens and added notification reset hooks (configurable timed and on screen unlocks) which better fitted my needs. If you're interested, I'd be happy to share the modifications.
Any plans to publish this in the market or provide the source in a repository such as Google code? My guess would be a lot of people would thankfully use your app. A lot of users have been complaining about the fact that LED notifications get reset after 5 minutes.
after a while of being inactive because of a very high workload I will return working on LedEffects. If you are still interested in contributing pls contact me.
This offer is of course not restricted to Mike ;)
I implemented this exactly. You can make notifications stay for a configurable amount of time (set mine to 2h and did not notice any effect on battery life). Optionally, led notifications are reset when screen is unlocked. Works flawlessly.
@Sven: Any interest in the modified source? As an alternative and only if you would provide your O.K., I could offer to publish the source on google code and/or the app in the market. Keeping credits to you and the app for free of course.
i want led on my Topaz
It wasn't working on my rooted HTC Desire with DeFroST rom. I added a new file HtcDesireRooted to the phones directory.
For the people who are interested in the source code, I've shared it at pastebin.
http://pastebin.com/Cyxmqr65
I only get to see the startup screen (first image above).
Android still responses however..
Testing buttons seem to work, but actually changing the LED's when an event occurs does not :-(
When I repeat clicking on "Stop Service" it says "Service already started" although I chose "Stop"
Another thing I've noticed:
When LedEffects is installed the option "Turn over to silence ring" doesn't work.
Thanks & best regards