[FEATURE] KNotify support for galago Notifications spec

Dmitry Suzdalev dimsuzkde at gmail.com
Mon Apr 21 20:48:15 BST 2008


Hi!

Recently I've been working on adding support for galago-project's DBus 
Notifications spec to KNotify.
I've added it to the 4.1 feature plan and it's already in shape which I 
consider good enough to be merged in trunk. So this is a review request :)

For more info (and screenshot), please refer to my blog post, so I don't say 
many things twice :). Here's a link:
http://dimsuz.wordpress.com/2008/04/10/plasmoiding-notifications-and-
notificating-plasmoids/

Well, i'll still repeat briefly:

Basically that ended up in only patching KNotify's NotifyByPopup plugin to 
forward all notification actions (showing, updating, closing) to DBus 
interface if it is registered on session bus.
So NotifyByPopup monitors DBus' session bus for org.kde.Notifications service 
to become registered and once it happens, all notifications are forwarded to 
that service.

The service itself implements (not fully atm) a galago-project's notifications 
spec (http://www.galago-project.org/specs/notification/0.9/index.html).

When/if this DBus service becomes unregistered, KNotify notices this and 
immediately falls back to its beloved KPassivePopups :)

Also NotifyByPopup reacts to a signals that org.kde.Notifications emits when 
some of notifications' actions get executed and executes this actions on 
knotify side just like if they were clicked inside regular passive popups.

Where this whole thing is useful and why?
Well, after this support will be in knotify, it'll allow any app/lib/whatever 
that implements this DBus interface to receive notifications from KNotify.

Personally I aim at creating a Plasma DataEngine+Applet pair which will show 
KNotify notifications in a nice and convenient way. Well, not only I aim, but 
I actually already started shooting practizes ;)
playground/base/plasma already has a "notifications" dataengine which 
implements DBus service and "notify" applet which shows them in a basic way 
(for starters). Applet already supports timing out of notifications and 
actions invoking.

Oh, looks like i'm still repeating my blog post :) Stopping that.

I'm attaching the patch to NotifyByPopup itself and also a 
org.kde.Notifications.xml which comes from playground - for reference.

Ah, and I also added a support for "Timeout" parameter in knotify's eventrc 
files. If specified it'll cause a popup to dissapear after that many ms.

Cheers,
Dmitry.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20080421/2e9226bb/attachment.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: knotify-galago.diff
Type: text/x-patch
Size: 8133 bytes
Desc: not available
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20080421/2e9226bb/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: org.kde.Notifications.xml
Type: application/xml
Size: 1204 bytes
Desc: not available
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20080421/2e9226bb/attachment.xml>


More information about the kde-core-devel mailing list