done
emacsclient -a '' -c -e "(progn (compose-mail) $attach_cmds)"
+## Controlling external handlers for attachements
+
+You can choose e.g. which pdf viewer to invoke from notmuch-show mode by
+adding a .mailcap file in your home directory. Here is an example:
+
+ application/pdf; /usr/bin/mupdf %s; test=test "$DISPLAY" != ""; description=Portable Document Format; nametemplate=%s.pdf
+ application/x-pdf; /usr/bin/mupdf %s; test=test "$DISPLAY" != ""; description=Portable Document Format; nametemplate=%s.pdf
+
## Issues with Emacs 24
If notmuch-show-mode behaves badly for you in emacs 24.x try adding one of
# Advanced tips and tweaks
+## Overwriting the sender address
+
+If you want to always use the same sender address, then the following
+defadvice can help you.
+
+ (defadvice notmuch-mua-reply (around notmuch-fix-sender)
+ (let ((sender "Max Monster <max.monster@example.com>"))
+ ad-do-it))
+ (ad-activate 'notmuch-mua-reply)
+
## Initial cursor position in notmuch 0.15 hello window
In notmuch version 0.15 emacs client the handling of cursor position in
## Viewing HTML messages with an external viewer
-The emacs client can display an HTML message inline using either the
-`html2text` library or some text browser, like w3m or lynx. This is
-controlled by the `mm-text-html-renderer` variable.
-
-The first option is theorically better, because it can generate
-strings formatted for emacs and do whatever you want, e.g., substitute
-text inside <b> tags for bold text in the buffer. The library, however
-is still in a very early development phase and cannot yet process
-properly many elements, like tables and <style> directives, and even
-the generated text is often poorly formatted.
-
-Among the available browsers, w3m seems to do a better job converting
-the html, and if you have the w3m emacs package, you can use it,
-instead of the w3m-standalone, and thus preserve the text formatting.
-
-But if the rendering fails for one reason or another, or if you really
-need to see the graphical presentation of the HTML message, it can be
-useful to display the message in an external viewer, such as a web
-browser. Here's a little script that Keith Packard wrote, which he
-calls `view-html`:
-
- #!/bin/sh
- dir=`mktemp -d`
- trap "rm -r $dir" 0
- cat "$@" > "$dir"/msg
- if munpack -C "$dir" -t < "$dir"/msg 2>&1 | grep 'Did not find'; then
- sed -n '/[Hh][Tt][Mm][Ll]/,$p' "$dir"/msg > $dir/part1.html
- rm "$dir"/msg
- fi
- for i in "$dir"/part*; do
- if grep -q -i -e '<html>' -e 'text/html' "$i"; then
- iceweasel "$i" &
- sleep 3
- exit 0
- fi
- done
-
-Save that script somewhere in your `${PATH}`, make it executable,
-and change the invocation of `iceweasel` to any other HTML viewer if
-necessary. Then within the emacs client, press '|' to pipe the
-current message, then type "view-html".
+The Emacs client can generally display HTML messages inline using one of the
+supported HTML renderers. This is controlled by the `mm-text-html-renderer`
+variable.
-Keith mentions the following caveat, "Note that if iceweasel isn't
-already running, it seems to shut down when the script exits. I
-don't know why."
+Sometimes it may be necessary to display the message, or a single MIME part, in
+an external browser. This can be done by `(notmuch-show-view-part)`, bound to
+`. v` by default.
## msmtp, message mode and multiple accounts
for the domains you want to send out using specific SMTP servers and
the rest will go to the default account.
-If you have a hard time getting the above to work for you, as I did,
-it's also possible to add a message-send-mail-hook in your .emacs to
-send the from header explicitly as an argument to msmtp as described
-[here](http://www.emacswiki.org/cgi-bin/wiki/GnusMSMTP#toc2) on the
-emacswiki.
-
-
## <span id="address_completion">Address completion when composing</span>
There are currently three solutions to this:
http://commonmeasure.org/~jkr/git/notmuch_addresses.git`) (slower, but
no compilation required so good for testing the setup)
+ * The C-based [notmuch-addrlookup](https://github.com/aperezdc/notmuch-addrlookup-c) by [Adrian Perez](http://perezdecastro.org/), which is faster but needs to be compiled.
+
+ git clone https://github.com/aperezdc/notmuch-addrlookup-c
+ cd notmuch-addrlookup-c
+ make
+
* The vala-based
- [addrlookup](http://github.com/spaetz/vala-notmuch) (faster, but
- needs compiling). The addrlookup binary needs to be compiled.
+ [addrlookup](http://github.com/spaetz/vala-notmuch) The addrlookup binary needs to be compiled.
Grab
`http://github.com/spaetz/vala-notmuch/raw/static-sources/src/addrlookup.c`
and build it with:
cd build
cmake ..; make;
-You will find the akonadimailsearch binary in the build/src directory.
-Create a ~/bin/akonadimailsearch.sh file with the following content and make it executable:
-(Adjust the path for the akonadimailsearch binary.)
+You will find the akonadimailsearch binary in the build/src directory. Copy it to ~/bin .
- #!/bin/sh
- akonadimailsearch "$@" 2>/dev/null
-
-As described above, you can now add the following settings to your
+You can now add the following settings to your
[notmuch init file](#notmuch_init_file):
(require 'notmuch-address)
- (setq notmuch-address-command "~/bin/akonadimailsearch.sh")
+ (setq notmuch-address-command "~/bin/akonadimailsearch")
(notmuch-address-message-insinuate)
+### Completion selection with helm
+
+An address query might return multiple possible matches from which you
+will have to select one. To ease this task, several different
+frameworks in emacs support completion selection. One of them is
+[helm](https://github.com/emacs-helm/helm). The following snippet
+improves the out-of-the-box support for helm in notmuch as it enables
+the required-match option and also does not ignore the first returned
+address.
+
+ (setq notmuch-address-selection-function
+ (lambda (prompt collection initial-input)
+ (completing-read prompt (cons initial-input collection) nil t nil 'notmuch-address-history)))
+
## How to sign/encrypt messages with gpg
installed, it will shadow the fixed version of easypg included with
emacs.
+## Reading and verifying encrypted and signed messages
+
+Encrypted and signed mime messages can be read and verified with:
+
+ (notmuch-crypto-process-mime t)
+
+Decrypting or verifying inline pgp messages can be done by selecting
+an the inline pgp area and and using:
+
+ M-x epa-decrypt-region RET
+
## Multiple identities using gnus-alias
[gnus-alias](http://www.emacswiki.org/emacs/GnusAlias) allows you to
In Debian and derivatives,
- (add-to-list 'load-path "/usr/share/org-mode/lisp")
+ (add-to-list 'load-path "/usr/share/org-mode/lisp")
Then
- (require 'org-notmuch)
+ (require 'org-notmuch)
In general it is nice to have a key for org-links (not just for notmuch). For example