]> git.cworth.org Git - obsolete/notmuch-wiki/blobdiff - emacstips.mdwn
Update news & manpages to notmuch version 0.16
[obsolete/notmuch-wiki] / emacstips.mdwn
index 820d181725c7b02b2a16f7a80fe467638a9a9aac..09c4b77cec2b30850d4dc03d2dc748c22023785b 100644 (file)
@@ -31,7 +31,7 @@ notmuch` from within a running emacs.
 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.
 
@@ -103,11 +103,11 @@ mentioned as script arguments. (Note: The script expects that you have
 
 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.
 
@@ -124,14 +124,14 @@ a file called `~/.emacs.d/my-notmuch.el`:
 
         ;;; 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*
@@ -147,6 +147,29 @@ Then, add to `.emacs`:
 
         (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
 
@@ -164,9 +187,9 @@ In notmuch versions up to 0.11.x
             (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"
@@ -434,7 +457,7 @@ available:
 
             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)`.
 
@@ -461,9 +484,9 @@ You can add the sender of a message to Google Contacts by piping the message
 
 ## 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:
 
@@ -509,7 +532,7 @@ identities using gnus-alias.
 
 Looking into `gnus-alias.el` gives a bit more information...
 
-### Example Configuration 
+### Example Configuration
 
 Here is an example configuration.
 
@@ -547,7 +570,7 @@ more information (some of these have "extensive documentation"):
         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.
@@ -601,25 +624,25 @@ a way that causes TABs to appear in the middle of the subject and header
 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
 
@@ -661,13 +684,30 @@ following code in my emacs config:
                       (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)