タイトルコンテンツに基づくmu4eヘッダーの色分け


8

メッセージの送信元の*mu4e-headers*メーリングリストに応じて、ビューのメッセージに色を付けます。私はemacsの変更にかなり慣れていないので、これに関連すると思われるものは何も見つかりませんでした。行ごとの顔を定義するためのプログラムフックはありますか?

例:メールがINBOX / MLフォルダーにある場合、緑色にしたい。それが私のINBOXにあるだけなら、私はそれを青にしたいと思います。

回答:


1

線の面はで定義されていmu4e~headers-line-handler-functionsます。条件付きで顔を変更するには、で設定をmu4e-mailing-list-colors行い、次のコード(mu4e~headers-line-apply-flag-face関数に基づく)を試すことができます。

(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)

ここに画像の説明を入力してください

よりサドル効果を得るために、新しいヘッダーフィールドを追加し、行のその部分にのみフォントを追加できます。また、に数値を追加(:colorize . 1)mu4e-headers-fieldsて微調整する必要がありますadd-face-text-property。次に例を示します。

(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))

ここに画像の説明を入力してください


回答@jagrgをありがとう!残念ながら、特定のメッセージにポイントがあると、2番目のソリューションのカラーバーが消えます。何とか強調表示が上書きされていると思います。それを修正する方法はありますか?
マシューピジアック

@MatthewPiziak、今すぐ試すことができます。
jagrg

興味深いことに、まだバー全体が表示されていませんが、下線に色が表示されています:imgur.com/XX7lAnvl.png
Matthew Piziak

mu4e-header-highlight-faceからの継承をやめましたがregion、現在表示されています。理由はわかりませんが、私はとをregion持っDistantForeground: gtk_selection_fg_colorていBackground: #11472bます。とにかく、私はregion継承を削除することが私の構成でとにかくきれいに見えるので、私はそれを維持しています。
Matthew Piziak
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.