]> git.eshelyaron.com Git - emacs.git/commitdiff
notifications: Allow to use Icon Naming Specification for app-icon
authorAndrew Tropin <andrew@trop.in>
Thu, 27 Jul 2023 14:43:17 +0000 (16:43 +0200)
committerMichael Albinus <michael.albinus@gmx.de>
Thu, 27 Jul 2023 14:43:17 +0000 (16:43 +0200)
* 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.

doc/lispref/os.texi
etc/NEWS
lisp/notifications.el

index 4bcc9d5fea636cc94a7b9b79b3382819d1905e26..ebedfe820878150ba9e755fcd1e7462f392b59c6 100644 (file)
@@ -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
index d0dab7552120589d9cc7a3bf4c465ddf8478f3dd..44ffbaf78f2cfa354ddbf1fd58bf020a8a82db77 100644 (file)
--- 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)
+
 \f
 * New Modes and Packages in Emacs 30.1
 
index 984ddbec5e9a1b64fb1dba815f5e8aa4a21f4f64..a694b38e52e69693cb78cf488d3ff6d7efd7613c 100644 (file)
@@ -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