What is it?

Tavu allows remote programs to use your local KDE notification system (aka knotify). The network communication between the remote program and knotify is done using the XMPP (Jabber) protocol.

How does it work?

Then it's very simple: when KJabnotify receives a message, it triggers a KDE notification.

Installation and first run

Download Tavu version 0.2.1, then extract it somewhere and run make install as root.

Then, run tavu-listen. When you run the program for the first time, a configuration file will be created. All you have to do is fill the "jid" and "password" lines so that the program can connect to the Jabber network.

How can remote programs send events to Tavu?

If you stick with Tavu's default configuration, the remote program has to use its own name as resource when connecting to the Jabber server. Then the name of the event is to be placed in the message subject, and the text of the event in the message itself. An example of a program that behaves this way is jabber_hilight_notify.

You might want to change this default configuration, though, and e.g. have Tavu read the application name from the name associated to its JID in the roster. See the next section (Advanced configuration) to see how this can be done.

On the local side, to configure how KDE will react to the events, just create a file called ~/.kde/share/apps/FOO/eventsrc, where FOO is the name of the remote program. You can refer to the knotify documentation to see what the file should look like.

Configuration

Notification tweaking

Of course, you can customize the place where Tavu will look for the information about the events it receives (application, event name, notification text). These 3 parameters can be defined in the configuration file, in the section "Event information". In order to give you a good flexibility in the way to interact with the remote application, you can use the following variables:

$sender
The name of the sender (from the roster). Fallbacks to the bare JID if there is no name or if the sender is not in the roster.
$senderjid
The bare JID (without resource) of the sender.
$senderresource
The resource of the sender.
$subject
The message subject.
$body
The message body.

Access control

To avoid event spoofing, you can restrict the JIDs Tavu will accept notifications from. The corresponding option is accept, located in the section "Message filters".

The possible values for accept are: roster, self, roster+self, list, roster+list, all and none.

If you set accept to either list or roster+list, you can further provide a list of JIDs to be accepted, with the list option.

Authors

Tavu is being written by David Ammouial.