summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Tropin <andrew@trop.in>2023-07-27 16:43:17 +0200
committerMichael Albinus <michael.albinus@gmx.de>2023-07-27 16:43:17 +0200
commit42a911c61e67caa807750cd40887b729f09aaf52 (patch)
treeb3af85c6de4cf3665e81ec700a8669890e70ce8c
parent184fc9b0200cf991c250bb3d6b158eaea2ee7806 (diff)
downloademacs-42a911c61e67caa807750cd40887b729f09aaf52.tar.gz
emacs-42a911c61e67caa807750cd40887b729f09aaf52.tar.bz2
emacs-42a911c61e67caa807750cd40887b729f09aaf52.zip
notifications: Allow to use Icon Naming Specification for app-icon
* doc/lispref/os.texi (Desktop Notifications): Extend meaning of :app-icon. * etc/NEWS: Allow to use Icon Naming Specification for app-icon in notifications-notify. * lisp/notifications.el (notifications-notify): Allow to use Icon Naming Specification for app-icon.
-rw-r--r--doc/lispref/os.texi7
-rw-r--r--etc/NEWS10
-rw-r--r--lisp/notifications.el11
3 files changed, 27 insertions, 1 deletions
diff --git a/doc/lispref/os.texi b/doc/lispref/os.texi
index 4bcc9d5fea6..ebedfe82087 100644
--- a/doc/lispref/os.texi
+++ b/doc/lispref/os.texi
@@ -2885,6 +2885,13 @@ must be the result of a previous @code{notifications-notify} call.
@item :app-icon @var{icon-file}
The file name of the notification icon. If set to @code{nil}, no icon
is displayed. The default is @code{notifications-application-icon}.
+If the value is a string, the function interprets it as a file name
+and converts to absolute by using @code{expand-file-name}; if it is a
+symbol, the function will use its name (which is useful when using the
+Icon Naming Specification @footnote{For more information about icon
+naming convention see
+@uref{https://specifications.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html,
+Icon Naming Specification}}).
@item :actions (@var{key} @var{title} @var{key} @var{title} ...)
A list of actions to be applied. @var{key} and @var{title} are both
diff --git a/etc/NEWS b/etc/NEWS
index d0dab755212..44ffbaf78f2 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -567,6 +567,16 @@ Similarly to buffer restoration by Desktop, 'recentf-mode' checking
of the accessibility of remote files can now time out if
'remote-file-name-access-timeout' is set to a positive number.
+** Notifications
+
++++
+*** Allow to use Icon Naming Specification for app-icon
+You can use a symbol as the value for ':app-icon' to provide icon name
+without specifying a file, like this:
+
+ (notifications-notify
+ :title "I am playing music" :app-icon 'multimedia-player)
+
* New Modes and Packages in Emacs 30.1
diff --git a/lisp/notifications.el b/lisp/notifications.el
index 984ddbec5e9..a694b38e52e 100644
--- a/lisp/notifications.el
+++ b/lisp/notifications.el
@@ -137,6 +137,12 @@ Various PARAMS can be set:
:app-icon The notification icon.
Default is `notifications-application-icon'.
Set to nil if you do not want any icon displayed.
+ If the value is a string, the function
+ interprets it as a file name and converts to
+ absolute by using `expand-file-name'; if it is a
+ symbol, the function will use its name (which is
+ useful when using the Icon Naming
+ Specification).
:actions A list of actions in the form:
(KEY TITLE KEY TITLE ...)
where KEY and TITLE are both strings.
@@ -304,7 +310,10 @@ of another `notifications-notify' call."
notifications-application-name)
:uint32 (or replaces-id 0)
:string (if app-icon
- (expand-file-name app-icon)
+ (if (stringp app-icon)
+ (expand-file-name app-icon)
+ ;; Convert symbol to string
+ (symbol-name app-icon))
;; If app-icon is nil because user
;; requested it to be so, send the
;; empty string