Home
Reading
Searching
Subscribe
Sponsors
Statistics
Posting
Contact
Spam
Lists
Links
About
Hosting
Filtering
Features Download
Marketing
Archives
FAQ
Blog
 
Gmane
From: Tassilo Horn <tassilo <at> member.fsf.org>
Subject: Re: notmuch?
Newsgroups: gmane.emacs.gnus.user
Date: Friday 27th November 2009 10:50:50 UTC (over 7 years ago)
[email protected] (Adam Sj√łgren) writes:

Hi Adam,

>> While you are still indexing, I already use it, and it's
>> fantastic. :-)
>
> With Gnus? Could you share some of your experiences, setup etc.?

Sure.  I use notmuch as search engine only, and do replying and normal
reading in Gnus.  So the most important part is to be able to jump from
a *notmuch-show* buffer to exactly that message in Gnus.  Here's the
code that here:

--8<---------------cut here---------------start------------->8---
(require 'notmuch)

(defun th-notmuch-file-to-group (file)
  "Calculate the Gnus group name from the given file name.

Example:

  IN:
/home/horn/Mail/Dovecot/Fastmail/.INBOX.mailinglists.notmuch/cur/1259184569.M4818P3384.localhost,W=6921:2,S
  OUT: nnimap+Fastmail:INBOX.mailinglists.notmuch

  IN:
/home/horn/Mail/Dovecot/Fastmail/cur/1259176906.M17483P24679.localhost,W=2488:2,S
  OUT:nnimap+Fastmail:INBOX"
  (let ((group (file-name-directory (directory-file-name
(file-name-directory file)))))
    (setq group (replace-regexp-in-string "/home/horn/Mail/Dovecot/" ""
group))
    (setq group (replace-regexp-in-string "^\\([^/]+\\)/" "nnimap+\\1:"
group t))
    (setq group (replace-regexp-in-string "/$" "" group))
    (if (string-match ":$" group)
        (concat group "INBOX")
      (replace-regexp-in-string ":\\." ":" group))))

(defun th-notmuch-goto-message-in-gnus ()
  "Open a summary buffer containing the current notmuch
article."
  (interactive)
  (let ((group (th-notmuch-file-to-group (notmuch-show-get-filename)))
        (message-id (replace-regexp-in-string
                     "^id:" "" (notmuch-show-get-message-id))))
    (if (and group message-id)
        (org-gnus-follow-link group message-id)
      (message "Couldn't get relevant infos for switching to Gnus."))))

(define-key notmuch-show-mode-map (kbd "C-c C-c")
'th-notmuch-goto-message-in-gnus)
--8<---------------cut here---------------end--------------->8---

The code assumes that one has his mails in a Maildir.  (I use a local
Dovecot IMAP client, which uses Maildir as default-backend.)

Additionally, it assumes that the Gnus server names (Fastmail and Uni)
equal the top-level maildir directories.

So most users will need to write an own version of
th-notmuch-file-to-group, but th-notmuch-goto-message-in-gnus should be
general.

The quintessence is that it uses org-gnus-follow-link, which comes with
org-mode and is also included in emacs 23.1 and newer.

Bye,
Tassilo
 
CD: 3ms