From c3441da72e7bdb7515c2bedcc6bfa91a37199930 Mon Sep 17 00:00:00 2001 From: enkore Date: Sat, 3 Aug 2013 14:24:37 +0200 Subject: [PATCH] core.desktop: make dependency python-gobject optional --- i3pystatus/core/desktop.py | 39 +++++++++++++++++++++----------------- 1 file changed, 22 insertions(+), 17 deletions(-) diff --git a/i3pystatus/core/desktop.py b/i3pystatus/core/desktop.py index a22b65b..77ddd46 100644 --- a/i3pystatus/core/desktop.py +++ b/i3pystatus/core/desktop.py @@ -1,22 +1,27 @@ -from gi.repository import Notify +try: + from gi.repository import Notify +except ImportError: + def display_notification(title, body, icon, urgency, timeout): + pass +else: + if not Notify.init("i3pystatus"): + raise ImportError("Couldn't initialize libnotify") -if not Notify.init("i3pystatus"): - raise ImportError("Couldn't initialize libnotify") + URGENCY_LUT = ( + Notify.Urgency.LOW, + Notify.Urgency.NORMAL, + Notify.Urgency.CRITICAL, + ) -URGENCY_LUT = ( - Notify.Urgency.LOW, - Notify.Urgency.NORMAL, - Notify.Urgency.CRITICAL, -) + # List of some useful icon names: + # battery, battery-caution, battery-low + # … -# List of some useful icon names: -# battery, battery-caution, battery-low -# … + def display_notification(title, body, icon="dialog-information", urgency=1, timeout=0): + notification = Notify.Notification.new(title, body, icon) + if timeout: + notification.set_timeout(timeout) + notification.set_urgency(URGENCY_LUT[urgency]) + return notification.show() -def display_notification(title, body, icon="dialog-information", urgency=1, timeout=0): - notification = Notify.Notification.new(title, body, icon) - if timeout: - notification.set_timeout(timeout) - notification.set_urgency(URGENCY_LUT[urgency]) - return notification.show()