65 lines
1.7 KiB
Python
Executable File
65 lines
1.7 KiB
Python
Executable File
#!/usr/bin/env python2
|
|
|
|
import pynotify
|
|
import sys
|
|
|
|
from optparse import OptionParser
|
|
|
|
def action_callback(arg):
|
|
print "action invoked (%s)" % (arg)
|
|
|
|
parser = OptionParser()
|
|
|
|
parser.add_option("-a", "--appname", dest="appname", action="store", default="dunst tester")
|
|
parser.add_option("-s", "--summary", dest="summary", action="store", default="summary")
|
|
parser.add_option("-b", "--body", dest="body", action="store", default="body")
|
|
parser.add_option("-u", "--urgency", dest="urgency", action="store", default="n")
|
|
parser.add_option("-A", "--action", dest="action", action="store", default=None)
|
|
parser.add_option("-w", "--wait", dest="wait", action="store_true", default=False)
|
|
parser.add_option("-t", "--timeout", dest="timeout", action="store", default=-1)
|
|
parser.add_option("-H", "--hint", dest="hint", action="store", default=None)
|
|
parser.add_option("-r", "--replaces", dest="id", action="store", default=0)
|
|
parser.add_option("-c", "--close", dest="close", action="store", default=0)
|
|
parser.add_option("-p", "--print_id", dest="print_id", action="store_true", default=False)
|
|
|
|
(o, args) = parser.parse_args()
|
|
|
|
|
|
pynotify.init(o.appname)
|
|
|
|
n = pynotify.Notification(o.summary, o.body)
|
|
|
|
try:
|
|
if o.urgency[0] == "l":
|
|
n.set_urgency(pynotify.URGENCY_LOW)
|
|
if o.urgency[0] == "n":
|
|
n.set_urgency(pynotify.URGENCY_NORMAL)
|
|
if o.urgency[0] == "c":
|
|
n.set_urgency(pynotify.URGENCY_CRITICAL)
|
|
except:
|
|
pass
|
|
|
|
|
|
if o.action:
|
|
n.add_action(o.action.split(":")[0], o.action.split(":")[1], action_callback, None)
|
|
|
|
if o.id:
|
|
n.props.id = int(o.id)
|
|
|
|
if o.close:
|
|
n.props.id = int(o.id)
|
|
n.close()
|
|
sys.exit(0)
|
|
|
|
# FIXME hints
|
|
|
|
n.set_timeout(int(o.timeout))
|
|
|
|
n.show()
|
|
|
|
if o.print_id:
|
|
nid = n.props.id
|
|
print nid
|
|
|
|
# FIXME wait
|