Subject: bug#61661: 30.0.50; [PATCH] Define 'appt-notification' face

From: Protesilaos Stavrou <[email-masked]>
Date: Mon, 20 Feb 2023 21:15:12 +0200

Dear maintainers,

The appt.el library can show a notification for upcoming appointments on
the mode line.  The face it uses is hardcoded to 'mode-line-emphasis'
which, by default, is a bold weight.

With the attached patch, we have a new face that the user/theme can set
to something easier to spot like bold+red.  Decoupling this indicator
from the generic 'mode-line-emphasis' allows us to add extra styling
only to the notification without affecting other parts of the mode line
that may be using 'mode-line-emphasis'.

What do you think?

All the best,
Protesilaos (or simply "Prot")

-- 
Protesilaos Stavrou
https://protesilaos.com
>From 02a8768e4e81b8a645b81cb4864387bf4422bcfe Mon Sep 17 00:00:00 2001
Message-Id: <[email-masked]>
From: Protesilaos Stavrou <[email-masked]>
Date: Mon, 20 Feb 2023 21:03:08 +0200
Subject: [PATCH] Add 'appt-notification' face

* etc/NEWS: Announce the new face.
* lisp/calendar/appt.el (appt-notification): Declare the new face.
(appt-check): Implement the new face.
---
 etc/NEWS              | 6 ++++++
 lisp/calendar/appt.el | 8 +++++++-
 2 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/etc/NEWS b/etc/NEWS
index bcce416ebc1..04fe60be493 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -61,6 +61,12 @@ This allows the user to customize the prompt that is appended by
 This is used for displaying the time and date components of
 'display-time-mode'.
 
+---
+** New face 'appt-notification'.
+This is used for the warning message when 'appt-display-mode-line' is
+non-nil.
+
+
 
 * Editing Changes in Emacs 30.1
 
diff --git a/lisp/calendar/appt.el b/lisp/calendar/appt.el
index 49597739446..3c2d7fee24b 100644
--- a/lisp/calendar/appt.el
+++ b/lisp/calendar/appt.el
@@ -165,6 +165,12 @@ (defcustom appt-delete-window-function #'appt-delete-window
   :type 'function
   :group 'appt)
 
+(defface appt-notification
+  '((t :inherit mode-line-emphasis))
+  "Face for appointment notification on the modeline.
+Shown when `appt-display-mode-line' is non-nil."
+  :group 'mode-line-faces
+  :version "30.1")
 
 ;;; Internal variables below this point.
 
@@ -406,7 +412,7 @@ (defun appt-check (&optional force)
                          (appt-mode-line (mapcar #'number-to-string
                                                  min-list)
                                          t)
-                         'face 'mode-line-emphasis)
+                         'face 'appt-notification)
                         " ")))
         ;; Reset count to 0 in case we display another appt on the next cycle.
         (setq appt-display-count (if (equal '(0) min-list) 0
-- 
2.39.2