Update mu4e stuff
This commit is contained in:
@@ -36,6 +36,10 @@ does.")
|
||||
(symbol-function 'mu4e-compose-mode)
|
||||
"The `message-mode' (or derived mode) used by `org-mu4e-compose-mode'.")
|
||||
|
||||
(defvar org-mu4e--old-mail-user-agent nil
|
||||
"Previous value of `mail-user-agent'.
|
||||
Set by `org-mu4e-mode'.")
|
||||
|
||||
(defvar-local org-mu4e--preview-message-buffer nil
|
||||
"The message buffer that backs this preview buffer.")
|
||||
|
||||
@@ -432,6 +436,12 @@ WIDE is the same as `mu4e-compose-reply'."
|
||||
(interactive "P")
|
||||
(org-mu4e-compose-reply-to nil wide))
|
||||
|
||||
;;;###autoload
|
||||
(defun org-mu4e-compose-wide-reply ()
|
||||
"`org-mu4e-compose-mode' version of `mu4e-compose-wide-reply'."
|
||||
(interactive)
|
||||
(org-mu4e-compose-reply-to nil t))
|
||||
|
||||
;;;###autoload
|
||||
(defun org-mu4e-compose-edit ()
|
||||
"This is like `mu4e-compose-edit', but utilizes `org-mu4e-compose-mode'."
|
||||
@@ -439,6 +449,13 @@ WIDE is the same as `mu4e-compose-reply'."
|
||||
(org-mu4e--with-replaced-compse-func
|
||||
(mu4e-compose-edit)))
|
||||
|
||||
;;;###autoload
|
||||
(defun org-mu4e-compose-forward ()
|
||||
"`org-mu4e-compose-mode' version of `mu4e-compose-forward'."
|
||||
(interactive)
|
||||
(org-mu4e--with-replaced-compse-func
|
||||
(mu4e-compose-forward)))
|
||||
|
||||
;;;###autoload
|
||||
(defvar-keymap org-mu4e-compose-mode-map
|
||||
:parent org-mode-map
|
||||
@@ -558,5 +575,91 @@ This is derived from `org-mode', but it also essentially runs
|
||||
"Return `org-mu4e-user-agent'."
|
||||
'org-mu4e-user-agent)
|
||||
|
||||
;; ########################
|
||||
;; # Global override mode #
|
||||
;; ########################
|
||||
(defun org-mu4e--make-override-keymap (parent)
|
||||
"Create and return new override keymap for PARENT.
|
||||
An override keymap is the same as PARENT except that it remaps certain mu4e
|
||||
functions to their org-mu4e equivalents."
|
||||
(let ((map (make-sparse-keymap)))
|
||||
(set-keymap-parent map parent)
|
||||
(define-key map [remap mu4e-compose-new] #'org-mu4e-compose-new)
|
||||
(define-key map [remap mu4e-compose-forward] #'org-mu4e-compose-forward)
|
||||
(define-key map [remap mu4e-compose-reply] #'org-mu4e-compose-reply)
|
||||
(define-key map [remap mu4e-compose-reply-to] #'org-mu4e-compose-reply-to)
|
||||
(define-key map [remap mu4e-compose-wide-reply]
|
||||
#'org-mu4e-compose-wide-reply)
|
||||
(define-key map [remap mu4e-compose-edit] #'org-mu4e-compose-edit)
|
||||
map))
|
||||
|
||||
(define-minor-mode org-mu4e--main-override-mode
|
||||
"Minor mode to replace key bindings in `mu4e-headers-mode'."
|
||||
:interactive nil
|
||||
:keymap (org-mu4e--make-override-keymap mu4e-main-mode-map))
|
||||
|
||||
(define-minor-mode org-mu4e--headers-override-mode
|
||||
"Minor mode to replace key bindings in `mu4e-headers-mode'."
|
||||
:interactive nil
|
||||
:keymap (org-mu4e--make-override-keymap mu4e-headers-mode-map))
|
||||
|
||||
(define-minor-mode org-mu4e--view-override-mode
|
||||
"Minor mode to replace key bindings in `mu4e-headers-mode'."
|
||||
:interactive nil
|
||||
:keymap (org-mu4e--make-override-keymap mu4e-view-mode-map))
|
||||
|
||||
(defun org-mu4e--enable-override-mode ()
|
||||
"Enable `org-mu4e-override-mode'."
|
||||
(setq org-mu4e--old-mail-user-agent mail-user-agent)
|
||||
(setopt mail-user-agent 'org-mu4e-user-agent)
|
||||
(add-hook 'mu4e-main-mode-hook #'org-mu4e--main-override-mode)
|
||||
(add-hook 'mu4e-headers-mode-hook #'org-mu4e--headers-override-mode)
|
||||
(add-hook 'mu4e-view-mode-hook #'org-mu4e--view-override-mode)
|
||||
(dolist (buffer (buffer-list))
|
||||
(with-current-buffer buffer
|
||||
(cond
|
||||
((derived-mode-p 'mu4e-main-mode)
|
||||
(org-mu4e--main-override-mode))
|
||||
((derived-mode-p 'mu4e-headers-mode)
|
||||
(org-mu4e--headers-override-mode))
|
||||
((derived-mode-p 'mu4e-view-mode)
|
||||
(org-mu4e--view-override-mode))))))
|
||||
|
||||
(defun org-mu4e--disable-override-mode ()
|
||||
"Disable `org-mu4e-override-mode'."
|
||||
(setopt mail-user-agent org-mu4e--old-mail-user-agent)
|
||||
(remove-hook 'mu4e-main-mode-hook #'org-mu4e--main-override-mode)
|
||||
(remove-hook 'mu4e-headers-mode-hook #'org-mu4e--headers-override-mode)
|
||||
(remove-hook 'mu4e-view-mode-hoook #'org-mu4e--view-override-mode)
|
||||
(dolist (buffer (buffer-list))
|
||||
(with-current-buffer buffer
|
||||
(org-mu4e--main-override-mode -1)
|
||||
(org-mu4e--headers-override-mode -1)
|
||||
(org-mu4e--view-override-mode -1))))
|
||||
|
||||
;;;###autoload
|
||||
(define-minor-mode org-mu4e-override-mode
|
||||
"Minor mode to replace all mu4e commands with their org-mu4e variant.
|
||||
This also sets `mail-user-agent'."
|
||||
:global t
|
||||
:group 'org-mu4e
|
||||
(if org-mu4e-override-mode
|
||||
(org-mu4e--enable-override-mode)
|
||||
(org-mu4e--disable-override-mode)))
|
||||
|
||||
;;;###autoload
|
||||
(defun org-mu4e-install-evil-bindings ()
|
||||
"Convenience function to install useful evil keybindings for org-mu4e.
|
||||
Note that this mutates some org-mu4e keymaps (but not any mu4e keymaps)."
|
||||
(require 'evil)
|
||||
(evil-define-key '(normal visual) org-mu4e-compose-mode-map
|
||||
"G" #'mu4e-compose-goto-bottom
|
||||
"gg" #'mu4e-compose-goto-top)
|
||||
(evil-define-key 'normal org-mu4e-compose-mode-map
|
||||
"ZZ" #'message-send-and-exit
|
||||
"ZD" #'message-dont-send
|
||||
"ZQ" #'message-kill-buffer
|
||||
"ZF" #'mml-attach-file))
|
||||
|
||||
(provide 'org-mu4e-compose)
|
||||
;;; org-mu4e-compose.el ends here
|
||||
|
||||
@@ -3414,38 +3414,35 @@ This is the same as `evil-ret' except that it works for links in
|
||||
;; mu4e compose HTML messages
|
||||
(use-package org-mime)
|
||||
(require 'org-mu4e-compose)
|
||||
(setq mail-user-agent 'org-mu4e-user-agent
|
||||
org-mime-org-html-with-latex-default 'dvisvgm
|
||||
org-mime-export-options '(:with-latex dvisvgm :with-footnotes t))
|
||||
(evil-define-key '(normal visual) org-mu4e-compose-mode-map
|
||||
"G" #'mu4e-compose-goto-bottom
|
||||
"gg" #'mu4e-compose-goto-top)
|
||||
(evil-define-key 'normal org-mu4e-compose-mode-map
|
||||
"ZZ" #'message-send-and-exit
|
||||
"ZD" #'message-dont-send
|
||||
"ZQ" #'message-kill-buffer
|
||||
"ZF" #'mml-attach-file)
|
||||
(evil-define-key 'normal mu4e-view-mode-map
|
||||
"R" #'org-mu4e-compose-reply
|
||||
"cr" #'org-mu4e-compose-reply
|
||||
"ce" #'org-mu4e-compose-edit
|
||||
"C" #'org-mu4e-compose-new)
|
||||
(evil-define-key 'normal mu4e-headers-mode-map
|
||||
"R" #'org-mu4e-compose-reply
|
||||
"cr" #'org-mu4e-compose-reply
|
||||
"E" #'org-mu4e-compose-edit
|
||||
"ce" #'org-mu4e-compose-edit
|
||||
"C" #'org-mu4e-compose-new)
|
||||
(evil-define-key 'normal mu4e-main-mode-map
|
||||
"C" #'compose-mail
|
||||
"cc" #'compose-mail)
|
||||
(defun my/-setup-org-mu4e-compose-mode ()
|
||||
"Setup up stuff in `org-mu4e-compose' buffers."
|
||||
(setq-local ltex-eglot-variable-save-method 'file)
|
||||
;; this should come last so it can pick up the above
|
||||
;; (my/eglot-if-trusted)
|
||||
)
|
||||
(add-hook 'org-mu4e-compose-mode-hook #'my/-setup-org-mu4e-compose-mode)
|
||||
(with-eval-after-load 'org-mu4e-compose
|
||||
(org-mu4e-override-mode))
|
||||
(setq ;; mail-user-agent 'org-mu4e-user-agent
|
||||
org-mime-org-html-with-latex-default 'dvisvgm
|
||||
org-mime-export-options '(:with-latex dvisvgm :with-footnotes t))
|
||||
;; (evil-define-key '(normal visual) org-mu4e-compose-mode-map
|
||||
;; "G" #'mu4e-compose-goto-bottom
|
||||
;; "gg" #'mu4e-compose-goto-top)
|
||||
;; (evil-define-key 'normal org-mu4e-compose-mode-map
|
||||
;; "ZZ" #'message-send-and-exit
|
||||
;; "ZD" #'message-dont-send
|
||||
;; "ZQ" #'message-kill-buffer
|
||||
;; "ZF" #'mml-attach-file)
|
||||
;; (evil-define-key 'normal mu4e-view-mode-map
|
||||
;; "R" #'org-mu4e-compose-reply
|
||||
;; "cr" #'org-mu4e-compose-reply
|
||||
;; "ce" #'org-mu4e-compose-edit
|
||||
;; "C" #'org-mu4e-compose-new
|
||||
;; "cc" #'org-mu4e-compose-new
|
||||
;; "cw" #'org-mu4e-compose-wide-reply)
|
||||
;; (evil-define-key 'normal mu4e-headers-mode-map
|
||||
;; "R" #'org-mu4e-compose-reply
|
||||
;; "cr" #'org-mu4e-compose-reply
|
||||
;; "E" #'org-mu4e-compose-edit
|
||||
;; "ce" #'org-mu4e-compose-edit
|
||||
;; "C" #'org-mu4e-compose-new)
|
||||
;; (evil-define-key 'normal mu4e-main-mode-map
|
||||
;; "C" #'compose-mail
|
||||
;; "cc" #'compose-mail)
|
||||
(setopt mu4e-compose-switch 'display-buffer)
|
||||
(defun my/-match-mu4e-message-buffer (buffer _action)
|
||||
"Matcher for mu4e message buffers for `display-buffer-alist'.
|
||||
|
||||
Reference in New Issue
Block a user