Is there any way to set a custom face for the echo area (and, by extension, the Isearch input text)?
So far my searching hasn't turned up anything, except that it seems like there isn't a way to modify this. Is that correct?
Sure you can, (see this SO question) although it seems a bit heavy-handed.
(defun nadvice/message-color (old-fun &optional str &rest args)
(if (not str)
(funcall old-fun)
(funcall old-fun "%s" (propertize (apply #'format str args)
'face '(:foreground "red")))))
(advice-add 'message :around #'nadvice/message-color)
A cleaner solution would be to only override the face for messages produced by specific pieces of code.
;; for example
(cl-letf* ((old-message (symbol-function #'message))
((symbol-function #'message)
(lambda (&optional str &rest args)
(if (not str)
(funcall old-message)
(funcall old-message "%s"
(propertize (apply #'format str args)
'face '(:foreground "red")))))))
(message "hi!"))
So naturally, you can combine these two techniques:
(defun nadvice/isearch-color (old-fun &rest args)
(cl-letf* ((old-message (symbol-function #'message))
((symbol-function #'message)
(lambda (&optional str &rest iargs)
(if (not str)
(funcall old-message)
(funcall old-message "%s"
(propertize (apply #'format str iargs)
'face '(:foreground "red")))))))
(apply old-fun args)))
(advice-add 'isearch-forward :around #'nadvice/isearch-color)
(advice-add 'isearch-backward :around #'nadvice/isearch-color)
M-x
list-faces-display
RET
. That list includes all of the faces defined in Emacs. If the face you're looking for isn't there, it doesn't exist.
Commented
Feb 5, 2016 at 18:38
M-x customize-face
) and hadn't found anything. Thought maybe it might fall into another category I wasn't thinking of, but alas that does not seem to be the case. Thanks again :)
Commented
Feb 5, 2016 at 18:44