KNotify-considerations for frameworks

Sune Vuorela nospam at vuorela.dk
Fri Sep 23 00:01:11 BST 2011


On 2011-09-22, Sune Vuorela <nospam at vuorela.dk> wrote:
...and of course, bits of my drafts fell out when doing the last reorder
of things.
> Hi
>
> I'm considering doing some work on the knotify-stuff for the kde
> frameworks.
> This involves the KNotification class and the KNotify daemon and related
> classes.
>
> I started hacking a bit on it in Randa, but have ended up scratchig my
> work and starting over.  http://pusling.com/blog/?p=200
>
> Currently, it is a quite complex framework that is hard to debug for the users
> of knotify (the application developers). It seems a bit overengineered,
> at least compared to how many of the features that is normally used.
>
> the full knotify stack can notify users in I think at least 5 different 
> ways:
> Popup
> Sound
> Run-a-command
> kttsd
> nothing
>
> But, for the developer that's not currently something to *directly* care
> for. The developer creates a KNotification object and sends it. This
> communicates over dbus to the knotify daemon. The knotify daemon looks
> up in the configurations what to do with it, and then does that.

The configuration that the user has the possibility to do is not very
userfriendly, nor really integrated with the application.

> What does it do?
> For Popup, which is the all-dominating case, it sends out a
> org.freedesktop.Notifications conformant message (galago spec)
>
> For nothing, which is the next case, it does nothing
>
> for Sound, it plays something using phonon
>
> for kttsd it sends a dbus message to kttsd
>
> and for run-a-command, it runs the specified command.
>
> The user can of course change what a notification does.
>
>
> What I would like to do is the following:
>
> Create a handful of classes, either in a separate library or in a
> fitting library, basically giving a public api to skip over the
> configuration bits and knotify bits for the Popup case. There is code
> available for several platforms already in the knotify code.

Consider doing some classes for Phonon to do audio notifications for
those who needs that or alternatively get a cross desktop audio
notification dbus spec, just like the galago spec and get the workspaces
to implement it. (Issue here might be that Gnome has chosen that one
need to link libcanberra for audio notifications)

> Make teh current knotify stack use the above code for popups and move it
> either to kde4support or to the high level platform integration bits.
> Depending on where it goes, I would like to also fold in the knotify
> daemon into the KNotification classes, as a daemon to - mostly rewrite
> dbus messages - seems a bit extreme[x].
>
>
> Comments, requests for more details and questions are most welcome
>
> /Sune
>  - developer for hire
>
>
> x) Yes. There is also two other uses. 1) to keep applications from
> having to link phonon for audionotifications and 2) to make sure that
> audio notifications will be played to the end when quitting a app
>
>





More information about the kde-core-devel mailing list