Displaying Clojure Test Results in Taskbar
This is a quick tip if you are using lein-test-refresh on KDE; each time tests are run you can generate a desktop notification with the test results.
To enable this, first we need to add :notify-command to our project.clj:
(defproject
;; ...
:test-refresh {:notify-command ["/path/to/notify.py" "Tests are run."]})
Then we need to create notify.py script:
#!/usr/bin/env python
import dbus
import sys
def notify(summary, body='', app_name='', app_icon='',
timeout=5000, actions=[], hints=[], replaces_id=0):
_bus_name = 'org.freedesktop.Notifications'
_object_path = '/org/freedesktop/Notifications'
_interface_name = _bus_name
session_bus = dbus.SessionBus()
obj = session_bus.get_object(_bus_name, _object_path)
interface = dbus.Interface(obj, _interface_name)
interface.Notify(app_name, replaces_id, app_icon,
summary, body, actions, hints, timeout)
if __name__ == '__main__':
notify(*sys.argv[1:])
I have made a small change in the last line of the original script.
Don’t forget to make it executable:
$ chmod +x /path/to/notify.py
If you have any questions, suggestions or corrections feel free to drop me a line.