;;; bandali-message.el --- bandali's message.el setup -*- lexical-binding: t; -*- ;; Copyright (C) 2018-2025 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 ;; Redefine for a simplified In-Reply-To header ;; (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)))) (setopt message-elide-ellipsis "[...]\n" message-citation-line-format "%N wrote:\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@kelar\\.org" "amin@shemshak\\.org" "\\(bandali\\|mab\\|aminb?\\)@gnu\\.org" "a?bandali@\\(csclub\\.\\)?uwaterloo\\.ca" "bandali@gnu\\.ca" "bandali@ubuntu\\.com" "bandali@debian\\.org") "\\|")) (defun b/newlines-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)))) (let ((m message-mode-map)) (b/keymap-set m "M-RET" #'b/newlines-or-asterism) (b/keymap-set m "C-c C-s" nil))) (add-hook 'message-mode-hook #'flyspell-mode) (provide 'bandali-message) ;;; bandali-message.el ends here