X-Git-Url: https://git.cworth.org/git?p=obsolete%2Fnotmuch-wiki;a=blobdiff_plain;f=emacstips.mdwn;h=09c4b77cec2b30850d4dc03d2dc748c22023785b;hp=820d181725c7b02b2a16f7a80fe467638a9a9aac;hb=HEAD;hpb=4aa8fd7243d4ff58303a67b408be384c06c37b2e diff --git a/emacstips.mdwn b/emacstips.mdwn index 820d181..09c4b77 100644 --- a/emacstips.mdwn +++ b/emacstips.mdwn @@ -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)