]> git.cworth.org Git - notmuch-wiki/blobdiff - emacstips.mdwn
complete sentence
[notmuch-wiki] / emacstips.mdwn
index db23fb08aeab902263ea82aa5f592e56b94a0f85..58641771798bd3f61bb34bd8b6bf7613f4f8fb77 100644 (file)
@@ -299,7 +299,7 @@ an external browser. This can be done by `(notmuch-show-view-part)`, bound to
 This command will try to view the message part the point is on with an
 external viewer. The mime-type of the part will determine what viewer
 will be used. Typically a 'text/html' part will be send to your
-browser. 
+browser.
 
 The configuration for this is kept in so called `mailcap`
 files. (typically the file is `~/.mailcap` or `/etc/mailcap`) If the
@@ -506,12 +506,20 @@ address.
 Messages can be signed using gpg by invoking
 `M-x mml-secure-sign-pgpmime` (or `M-x mml-secure-encrypt-pgpmime`).
 These functions are available via the standard `message-mode` keybindings
-`C-c C-m s p` and `C-c C-m c p`. To sign outgoing mail by default, use the
-`message-setup-hook` in your `.emacs` file:
+`C-c C-m s p` and `C-c C-m c p`.
+
+In Emacs 28 you will be asked whether to sign the message using the
+sender and are offered to remember your choice.  In Emacs 27 you will
+get a slightly misleading error and have to manually add the following
+line to you init file.  Older Emacsen just do this unconditionally.
+
+        (setq mml-secure-openpgp-sign-with-sender t)
+
+To sign outgoing mail by default, use the `message-setup-hook` in your
+init file:
 
         ;; Sign messages by default.
         (add-hook 'message-setup-hook 'mml-secure-sign-pgpmime)
-        (setq mml-secure-openpgp-sign-with-sender t)
 
 This inserts the required `<#part sign=pgpmime>` into the beginning
 of the mail text body and will be converted into a pgp signature
@@ -656,12 +664,12 @@ See also the **Usage:** section in `gnus-alias.el`.
 ## Multiple identities (and more) with message-templ
 
 Another option for multiple identities is
-[message-templ](http://pivot.cs.unb.ca/git?p=message-templ.git;a=summary)
+[message-templ](http://git.tethera.net/message-templ.git)
 (also a available in marmalade).  This provides roughly the same
 facilities as wanderlust's template facility.
 
 See
-[example.emacs.el](http://pivot.cs.unb.ca/git?p=message-templ.git;a=blob;f=example.emacs.el;hb=HEAD)
+[example.emacs.el](https://git.tethera.net/message-templ.git/tree/example.emacs.el)
 for some simple examples of usage.
 
 ## Resending (or bouncing) messages
@@ -795,19 +803,29 @@ In NixOS, using `emacsWithPackages (epkgs: [ epkgs.orgPackages.org-plus-contrib
 
     (loop for p in load-path
           do (if (file-accessible-directory-p p)
-                 (let ((m (directory-files-recursively p "^org-notmuch.el$")))
+                 (let ((m (directory-files-recursively p "^ol-notmuch.el$")))
                       (if m (add-to-list 'load-path (file-name-directory (car m)))))))
 
 Then
 
-    (require 'org-notmuch)
+    (require 'ol-notmuch)
 
 In general it is nice to have a key for org-links (not just for notmuch). For example
 
-    (define-key global-map "\C-cl" 'org-store-link)
+    (define-key global-map "\C-c l" 'org-store-link)
+
+If you're using `use-package` the package can be loaded using the following:
+
+```emacs-lisp
+(use-package ol-notmuch
+  :ensure t
+  :bind
+  ("C-c l" . org-store-link))
+```
 
 Note the package was renamed from `org-notmuch` to `ol-notmuch` in recent
-versions of org-mode, and you might want to `(require 'ol-notmuch)` instead.
+versions of org-mode. If you're using an old version of notmuch you might want
+to `(require 'org-notmuch)` instead.
 
 ## Viewing diffs in notmuch
 
@@ -921,3 +939,31 @@ discussion](https://notmuchmail.org/pipermail/notmuch/2018/026414.html).
 The `notmuch-extract-thread-patches` and
 `notmuch-extract-message-patches` commands from the `elpa-mailscripts`
 package in Debian (and its derivatives) can do this for you.
+
+## Allow content preference based on message context
+
+The preference for which sub-part of a multipart/alternative part is shown is
+globally set. For example, if you prefer showing the html version over the text
+based, you can set:
+
+    (setq notmuch-multipart/alternative-discouraged '("text/plain" "text/html"))
+
+However, sometimes you might want to adapt your preference depending on the
+context. You can override the default settings on a per-message basis by
+providing a function that has access to the message and which returns the
+discouraged type list. For example:
+
+    (defun my/determine-discouraged (msg)
+      (let* ((headers (plist-get msg :headers))
+             (from (or (plist-get headers :From) "")))
+        (cond
+         ((string-match "whatever@mail.address.com" from)
+          '("text/plain"))
+         (t
+          '("text/html" "multipart/related")))))
+
+    (setq notmuch-multipart/alternative-discouraged
+          'my/determine-discouraged)
+
+This would discourage text/html and multipart/related generally, but discourage
+text/plain should the message be sent from whatever@mail.address.com.