alert
alert copied to clipboard
Use `notifications-notify`, not `notify-send` command?
Since emacs 24.1 (at least?), emacs supports alerting via dbus directly, rather than using notify-send
. It would, I believe, be easy to replace or enhance the libnotify
alerts to use notifications.el
directly, rather than using notify-send
.
I am happy to implement this. Is there a reason to retain the old use of notify-send
, though? For instance to support emacs older than 24.1?
e.g.
(defun alert-libnotify-notify (info)
"Send INFO using notifications-notify.
Handles :ICON, :CATEGORY, :SEVERITY, :PERSISTENT, :NEVER-PERSIST, :TITLE
and :MESSAGE keywords from the INFO plist. :CATEGORY can be
passed as a single symbol, a string or a list of symbols or
strings."
(if (fboundp #'notifications-notify)
(let ((category (plist-get info :category))
(urgency (cdr (assq (plist-get info :severity) alert-libnotify-priorities))))
(notifications-notify
:title (alert-encode-string (plist-get info :title))
:body (alert-encode-string (plist-get info :message))
:app-icon (or (plist-get info :icon) alert-default-icon)
:category (cond ((symbolp category)
(symbol-name category))
((stringp category) category)
((listp category)
(mapconcat (if (symbolp (car category))
#'symbol-name
#'identity)
category ",")))
:timeout (* 1000 ; notify-send takes msecs
(if (and (plist-get info :persistent)
(not (plist-get info :never-persist)))
0 ; 0 indicates persistence
alert-fade-time))
:urgency (if urgency (symbol-name urgency) "normal")))
(alert-message-notify info)))