Mặt đường được xác định trong mu4e~headers-line-handler-functions
. Để thay đổi khuôn mặt một cách có điều kiện, bạn có thể đặt tùy chọn của mình mu4e-mailing-list-colors
và thử mã sau (dựa trên mu4e~headers-line-apply-flag-face
chức năng):
(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)
Để có hiệu ứng lộn xộn hơn, bạn có thể thêm trường tiêu đề mới và chỉ thêm phông chữ trên phần đó của dòng. Bạn cũng sẽ cần phải thêm (:colorize . 1)
vào mu4e-headers-fields
và tinh chỉnh các con số trong add-face-text-property
. Đây là một ví dụ:
(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))