;;; bandali-message.el --- bandali's message.el setup -*- lexical-binding: t; -*- ;; Copyright (C) 2018-2022 Amin Bandali ;; Author: Amin Bandali ;; Keywords: mail, news ;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with this program. If not, see . ;;; Commentary: ;; My setup for message.el. ;;; Code: (with-eval-after-load 'message ;; :bind (:map message-mode-map ("" . b/insert-asterism)) ;; redefine for a simplified In-Reply-To header ;; (see https://todo.sr.ht/~sircmpwn/lists.sr.ht/67) (defun message-make-in-reply-to () "Return the In-Reply-To header for this message." (when message-reply-headers (let ((from (mail-header-from message-reply-headers)) (msg-id (mail-header-id message-reply-headers))) (when from msg-id)))) (defconst b/message-cite-style-format "On %Y-%m-%d %l:%M %p, %N wrote:") (defconst message-cite-style-bandali '((message-cite-function 'message-cite-original) (message-citation-line-function 'message-insert-formatted-citation-line) (message-cite-reply-position 'traditional) (message-yank-prefix "> ") (message-yank-cited-prefix ">") (message-yank-empty-prefix ">") (message-citation-line-format b/message-cite-style-format)) "Citation style based on Mozilla Thunderbird's. Use with message-cite-style.") (setq message-elide-ellipsis "[...]\n" ;; message-cite-style 'message-cite-style-bandali message-citation-line-format "%N writes:\n" message-citation-line-function 'message-insert-formatted-citation-line message-confirm-send t message-fill-column 70 message-forward-as-mime t message-kill-buffer-on-exit t message-send-mail-function #'smtpmail-send-it message-subscribed-address-functions '(gnus-find-subscribed-addresses) message-dont-reply-to-names (mapconcat #'identity '("\\(bandali\\|mab\\|aminb?\\)@gnu\\.org" "bandali@kelar\\.org" "amin@shemshak\\.org" "a?bandali@\\(csclub\\.\\)?uwaterloo\\.ca" "amin\\.bandali@savoirfairelinux\\.com" "\\(amin\\.\\)?bandali@canonical\\.com" "bandali@ubuntu\\.com") "\\|")) ;; (custom-set-faces ;; '(message-header-subject ;; ((t (:foreground "#111" :weight semi-bold)))) ;; '(message-header-to ;; ((t (:foreground "#111" :weight normal)))) ;; '(message-header-cc ;; ((t (:foreground "#333" :weight normal)))) ;; custom newline & reformat function (defun b/message-newline-or-asterism (arg) "Create newlines per my liking or insert asterism if ARG is non-nil." (interactive "P") (if arg (b/insert-asterism) (progn (beginning-of-line) (delete-region (point) (line-end-position)) (newline) (open-line 1)))) (define-key message-mode-map (kbd "M-RET") #'b/message-newline-or-asterism) ;; local key bindings ;; (define-key message-mode-map ;; [remap next-line] #'mail-abbrev-next-line) ;; (define-key message-mode-map ;; [remap end-of-buffer] #'mail-abbrev-end-of-buffer) ) ;; hooks ;; (add-hook 'message-setup-hook #'mml-secure-message-sign-pgpmime) (add-hook 'message-mode-hook #'flyspell-mode) (add-hook 'message-mode-hook (lambda () (local-unset-key (kbd "C-c C-s")))) (provide 'bandali-message) ;;; bandali-message.el ends here