Both GNOME and KDE have that already. Shouldn't be too hard to implement what you're thinking if the APIs/services are available.