A notification server in Python

I decided to learn Python two days ago. Partly because I wanted a quick solution to a problem (and writing C always takes me so long), but also because I’ve read a lot of positive comments about it.

The problem

What I wanted was to get rid of the old gnome-osd stuff and beautify the visual output of some shortcut-scripts I use (more about that later). I found out I needed a script that can display notifications (using Ubuntu’s notify-osd) and provide that functionality for other scripts with D-Bus.

“D-Bus?”, you might ask. Well, I also wanted to be able to update notifications or append new body-text to them. This turned out to only be possible for a single script, but my shortcut-scripts (like “toggle-touchpad”) run only once and then exit. So I needed inter-process-communication, hence D-Bus.

The solution

Python is indeed great, because there are bindings for python-dbus and pynotify. Just what I needed to start hacking.

Download: Notification Server, 0.0.1

Usage

Here’s an example (toggle-touchpad), of how to use “send-notification.py”:

#!/bin/bash

TEST=`synclient -l | grep "TouchpadOff             = 0"`

if [ "$TEST" != "" ]; then
    synclient TouchpadOff=1
    send-notification.py --name="toggle-touchpad" \
        --icon="input-mouse" "Input" "Touchpad disabled"
else
    synclient TouchpadOff=0
    send-notification.py --name="toggle-touchpad" \
        --icon="input-mouse" "Input" "Touchpad enabled"
fi

Both Python-scripts come with “--help“, by the way.

3 thoughts on “A notification server in Python”

  1. #!/bin/bash

    TEST=`synclient -l | grep “TouchpadOff = 0″`
    I had to motdify the shellscript a bit to get it running. I had to tell the system to use python for the .py scrips.
    thus i ended with this:

    if [ “$TEST” != “” ]; then
    synclient TouchpadOff=1
    python send-notification.py –name=”toggle-touchpad” \
    –icon=”input-mouse” “Input” “Touchpad disabled”
    else
    synclient TouchpadOff=0
    python send-notification.py –name=”toggle-touchpad” \
    –icon=”input-mouse” “Input” “Touchpad enabled”
    fi

  2. I had to modify the shellscript a bit to get it running. I had to tell the system to use python for the .py scrips. Thus i ended with this:

    #!/bin/bash

    TEST=`synclient -l | grep “TouchpadOff = 0″`
    I had to motdify the shellscript a bit to get it running. I had to tell the system to use python for the .py scrips.
    thus i ended with this:

    if [ “$TEST” != “” ]; then
    synclient TouchpadOff=1
    python send-notification.py –name=”toggle-touchpad” \
    –icon=”input-mouse” “Input” “Touchpad disabled”
    else
    synclient TouchpadOff=0
    python send-notification.py –name=”toggle-touchpad” \
    –icon=”input-mouse” “Input” “Touchpad enabled”
    fi

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.