When first starting notmuch in emacs, you will be presented with the
notmuch "hello" page. If it exits with an error after writing
"Welcome to notmutch. You have" you need to do the basic notmuch setup
-first (see above).
+first (see above).
From here you can do searches, see lists of recent
searches, saved searches, message tags, help information, etc.
If notmuch-show-mode behaves badly for you in emacs 24.x try adding one of
- (setq gnus-inhibit-images nil)
+ (setq gnus-inhibit-images nil)
or
- (require 'gnus-art)
+ (require 'gnus-art)
to your .emacs file.
;;; my-notmuch.el -- my notmuch mail configuration
;;;
-
+
;;; add here stuff required to be configured *before*
;;; notmuch is loaded;
;; uncomment and modify in case some elisp files are not found in load-path
;; (add-to-list 'load-path "~/vc/ext/notmuch/emacs")
- ;;; load notmuch
+ ;;; load notmuch
(require 'notmuch)
;;; add here stuff required to be configured *after*
(autoload 'notmuch "~/.emacs.d/my-notmuch" "notmuch mail" t)
+## Initial cursor position in notmuch 0.15 hello window
+
+In notmuch version 0.15 emacs client the handling of cursor position in
+notmuch hello window has been simplified to a version which suits best
+most cases.
+
+Initially the cursor is positioned at the beginning of buffer.
+
+Some users liked the "ancient" version where cursor was moved to the
+first `Saved searches` button.
+
+Add the following code to your notmuch emacs configuration file in
+case you want this behaviour:
+
+ (add-hook 'notmuch-hello-refresh-hook
+ (lambda ()
+ (if (and (eq (point) (point-min))
+ (search-forward "Saved searches:" nil t))
+ (progn
+ (forward-line)
+ (widget-forward 1))
+ (if (eq (widget-type (widget-at)) 'editable-field)
+ (beginning-of-line)))))
## Add a key binding to add/remove/toggle a tag
(notmuch-show-add-tag "spam")
(notmuch-show-remove-tag "inbox")))
-Starting from notmuch 0.12 the functions `notmuch-show-add-tag` and
+Starting from notmuch 0.12 the functions `notmuch-show-add-tag` and
`notmuch-show-remove-tag` have changed to be more versatile and lost
-noninteractive use. When upgrading to 0.12 the above needs to be
+noninteractive use. When upgrading to 0.12 the above needs to be
changed to this:
(define-key notmuch-show-mode-map "S"
cc -o addrlookup addrlookup.c `pkg-config --cflags --libs gobject-2.0` -lnotmuch
- * Shell/fgrep/perl combination [nottoomuch-addresses.sh](http://www.iki.fi/too/nottoomuch/nottoomuch-addresses/).
+ * Shell/fgrep/perl combination [nottoomuch-addresses.sh](https://github.com/domo141/nottoomuch/blob/master/nottoomuch-addresses.rst).
This tools maintains it's own address "database" gathered from email
files notmuch knows and search from that "database" is done by `fgrep(1)`.
## How to sign/encrypt messages with gpg
-Messages can by signed using gpg by invoking
+Messages can by 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
+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:
Looking into `gnus-alias.el` gives a bit more information...
-### Example Configuration
+### Example Configuration
Here is an example configuration.
M-x describe-variable RET gnus-alias-default-identity
M-x customize-group RET gnus-alias RET
- or
+ or
M-x gnus-alias-customize RET
The last two do the same thing.
lines. Add this to your `.emacs` to replace tabs with spaces in subject
lines:
- (defun notmuch-show-subject-tabs-to-spaces ()
- "Replace tabs with spaces in subject line."
- (goto-char (point-min))
- (when (re-search-forward "^Subject:" nil t)
- (while (re-search-forward "\t" (line-end-position) t)
- (replace-match " " nil nil))))
+ (defun notmuch-show-subject-tabs-to-spaces ()
+ "Replace tabs with spaces in subject line."
+ (goto-char (point-min))
+ (when (re-search-forward "^Subject:" nil t)
+ (while (re-search-forward "\t" (line-end-position) t)
+ (replace-match " " nil nil))))
- (add-hook 'notmuch-show-markup-headers-hook 'notmuch-show-subject-tabs-to-spaces)
+ (add-hook 'notmuch-show-markup-headers-hook 'notmuch-show-subject-tabs-to-spaces)
And in header lines (this will only work with the yet to be released
notmuch version 0.15):
- (defun notmuch-show-header-tabs-to-spaces ()
- "Replace tabs with spaces in header line."
- (setq header-line-format
- (notmuch-show-strip-re
- (replace-regexp-in-string "\t" " " (notmuch-show-get-subject)))))
+ (defun notmuch-show-header-tabs-to-spaces ()
+ "Replace tabs with spaces in header line."
+ (setq header-line-format
+ (notmuch-show-strip-re
+ (replace-regexp-in-string "\t" " " (notmuch-show-get-subject)))))
- (add-hook 'notmuch-show-hook 'notmuch-show-header-tabs-to-spaces)
+ (add-hook 'notmuch-show-hook 'notmuch-show-header-tabs-to-spaces)
## Hiding unread messages in notmuch-show
(when overlay
(overlay-put overlay 'face '((:inherit bold) (:foreground "green")))))))))))
(add-hook 'notmuch-hello-refresh-hook 'color-inbox-if-unread)
-
+
## Linking to notmuch messages and threads from the Circe IRC client
[Circe](https://github.com/jorgenschaefer/circe/wiki) is an IRC client for emacs.
-To have clickable buttons for notmuch messages and threads, add the following to
+To have clickable buttons for notmuch messages and threads, add the following to
`lui-buttons-list` (using, e.g. M-x customize-variable)
("\\(?:id\\|mid\\|thread\\):[0-9A-Za-z][0-9A-Za-z.@-]*" 0 notmuch-show 0)
-
+
If you have notmuch-pick installed, it works fine for this as well.
+
+## Linking to notmuch messages from org-mode
+
+Support for linking to notmuch messages is distributed with org-mode,
+but as a contrib file, so you might have to work a bit to load it.
+
+In Debian and derivatives,
+
+ (add-to-list 'load-path "/usr/share/org-mode/lisp")
+
+Then
+
+ (require 'org-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)