(setq org-src-tab-acts-natively t
org-src-preserve-indentation nil
org-edit-src-content-indentation 0
+ org-html-divs '((preamble "header" "preamble")
+ (content "main" "content")
+ (postamble "footer" "postamble"))
org-html-doctype "html5"
- org-html-html5-fancy t)
+ org-html-html5-fancy t
+ org-html-postamble nil)
(add-hook 'org-mode-hook 'org-indent-mode)
(use-package htmlize)
+(use-package org-notmuch
+ :after (:any org notmuch))
#+end_src
*** [[https://magit.vc/][Magit]]
** [[https://github.com/11111000000/tao-theme-emacs][tao-theme]]
-#+begin_src emacs-lisp
+#+begin_src emacs-lisp :tangle no
(use-package tao-theme
:demand t
:config (load-theme 'tao-yang t))
#+end_src
+** [[https://github.com/maio/eink-emacs][eink-theme]]
+
+#+begin_src emacs-lisp
+(load-theme 'eink t)
+#+end_src
+
* Email
** [[https://notmuchmail.org][notmuch]]
+See [[notmuch:id:87muuqsvci.fsf@fencepost.gnu.org][bug follow-up]].
+
#+begin_src emacs-lisp
(defun ab/notmuch ()
"Delete other windows, then launch `notmuch'."
#'flyspell-mode)
;; (add-hook 'notmuch-message-mode-hook #'+doom-modeline|set-special-modeline)
;; TODO: is there a way to only run this when replying and not composing?
- (add-hook 'notmuch-message-mode-hook
- (lambda () (progn
- (newline)
- (newline)
- (forward-line -1)
- (forward-line -1))))
+ ;; (add-hook 'notmuch-message-mode-hook
+ ;; (lambda () (progn
+ ;; (newline)
+ ;; (newline)
+ ;; (forward-line -1)
+ ;; (forward-line -1))))
;; (add-hook 'message-setup-hook
;; #'mml-secure-message-sign-pgpmime)
)
notmuch-hello-insert-alltags)
notmuch-search-oldest-first nil
notmuch-show-all-tags-list t
+ notmuch-message-headers ; see bug follow-up above
+ '("Subject" "To" "Cc" "Date" "List-Id" "X-RT-Originator")
notmuch-hello-thousands-separator ","
notmuch-fcc-dirs
'(("amin@aminb.org" . "amin/Sent")
(add-to-list 'recentf-exclude (expand-file-name ab-maildir)))
#+end_src
+** supercite
+
+#+begin_src emacs-lisp :tangle no
+(use-package supercite
+ :commands sc-cite-original
+ :init
+ (add-hook 'mail-citation-hook 'sc-cite-original)
+
+ (defun sc-remove-existing-signature ()
+ (save-excursion
+ (goto-char (region-beginning))
+ (when (re-search-forward message-signature-separator (region-end) t)
+ (delete-region (match-beginning 0) (region-end)))))
+
+ (add-hook 'mail-citation-hook 'sc-remove-existing-signature)
+
+ (defun sc-remove-if-not-mailing-list ()
+ (unless (assoc "list-id" sc-mail-info)
+ (setq attribution sc-default-attribution
+ citation (concat sc-citation-delimiter
+ sc-citation-separator))))
+
+ (add-hook 'sc-attribs-postselect-hook 'sc-remove-if-not-mailing-list)
+
+ :config
+ (defun sc-fill-if-different (&optional prefix)
+ "Fill the region bounded by `sc-fill-begin' and point.
+Only fill if optional PREFIX is different than
+`sc-fill-line-prefix'. If `sc-auto-fill-region-p' is nil, do not
+fill region. If PREFIX is not supplied, initialize fill
+variables. This is useful for a regi `begin' frame-entry."
+ (if (not prefix)
+ (setq sc-fill-line-prefix ""
+ sc-fill-begin (line-beginning-position))
+ (if (and sc-auto-fill-region-p
+ (not (string= prefix sc-fill-line-prefix)))
+ (let ((fill-prefix sc-fill-line-prefix))
+ (unless (or (string= fill-prefix "")
+ (save-excursion
+ (goto-char sc-fill-begin)
+ (or (looking-at ">+ +")
+ (< (length
+ (buffer-substring (point)
+ (line-end-position)))
+ 65))))
+ (fill-region sc-fill-begin (line-beginning-position)))
+ (setq sc-fill-line-prefix prefix
+ sc-fill-begin (line-beginning-position)))))
+nil))
+#+end_src
+
* Post initialization
:PROPERTIES:
:CUSTOM_ID: post-initialization