As faces da linha são definidas em mu4e~headers-line-handler-functions
. Para alterar a face condicionalmente, você pode definir suas preferências mu4e-mailing-list-colors
e tentar o seguinte código (com base na mu4e~headers-line-apply-flag-face
função):
(defvar mu4e-mailing-list-colors
'(("emacs-devel.gnu.org" . "green")
("emacs-orgmode.gnu.org" . "blue")))
(defun mu4e~headers-line-apply-mailing-list-face (msg line)
"Adjust LINE's face property based on the MSG's mailing-list value."
(let* ((ml (mu4e-message-field msg :mailing-list))
(face (if (assoc ml mu4e-mailing-list-colors)
`(:foreground ,(assoc-default ml mu4e-mailing-list-colors))
'mu4e-header-face)))
(when (fboundp 'add-face-text-property)
(add-face-text-property 0 (length line) face t line))
line))
(add-to-list 'mu4e~headers-line-handler-functions
'mu4e~headers-line-apply-mailing-list-face)
Para um efeito mais súbito, você pode adicionar um novo campo de cabeçalho e adicionar fonte apenas nessa parte da linha. Você também terá que adicionar (:colorize . 1)
para mu4e-headers-fields
e ajustar os números add-face-text-property
. Aqui está um exemplo:
(add-to-list 'mu4e-header-info-custom
'(:colorize . (:name "Mailing list"
:shortname ""
:function (lambda (_msg)
(make-string 1 ?█)))))
(defun mu4e~headers-line-apply-mailing-list-face (msg line)
"Adjust LINE's face property based on the mailing list."
(let* ((ml (mu4e-message-field msg :mailing-list))
(face (if (assoc ml mu4e-mailing-list-colors)
(let ((color (assoc-default ml mu4e-mailing-list-colors)))
`(:foreground ,color :background ,color))
`(:foreground ,(face-attribute 'highlight :background)))))
(when (fboundp 'add-face-text-property)
(add-face-text-property 53 54 face t line))
line))