org-mutt blog post ported to capture
authorStefano Zacchiroli <zack@upsilon.cc>
Thu, 17 Oct 2013 07:25:00 +0000 (09:25 +0200)
committerStefano Zacchiroli <zack@upsilon.cc>
Thu, 17 Oct 2013 07:25:00 +0000 (09:25 +0200)
blog/posts/2010/02/integrating_Mutt_with_Org-mode.mdwn

index 98b836c..c9b2ef1 100644 (file)
@@ -47,29 +47,40 @@ The
 script is trivial: it parses the fed mail from STDIN (using a couple of legacy
 Perl modules) and then invokes org-protocol.
 
-The relevant configuration from my `~/.emacs` is reported below; the comments
-explain the various parts:
+The relevant configuration from my `~/.emacs` is reported below (see the Git
+repo for the
+[most recent version of this](http://git.upsilon.cc/?p=utils/org-mutt.git;a=blob_plain;f=emacs-conf.sample;hb=HEAD));
+the comments explain the various parts:
 
        ;; standard org <-> remember stuff, RTFM
-       (org-remember-insinuate)
+       (require 'org-capture)
+
        (setq org-default-notes-file "~/org/gtd.org")
-       (setq org-remember-templates  ;; mail-specific note template, identified by "m"
-             '(("Mail" ?m "* %?\n\n  Source: %u, %c\n  %i" nil)))
 
+       (setq org-capture-templates
+             (quote
+              (("m"
+                "Mail"
+                entry
+                (file+headline "~/org/gtd.org" "Incoming")
+                "* TODO %^{Title}\n\n  Source: %u, %c\n\n  %i"
+                :empty-lines 1)
+               ;; ... more templates here ...
+               )))
        ;; ensure that emacsclient will show just the note to be edited when invoked
        ;; from Mutt, and that it will shut down emacsclient once finished;
        ;; fallback to legacy behavior when not invoked via org-protocol.
-       (add-hook 'org-remember-mode-hook 'delete-other-windows)
+       (add-hook 'org-capture-mode-hook 'delete-other-windows)
        (setq my-org-protocol-flag nil)
-       (defadvice org-remember-finalize (after delete-frame-at-end activate)
+       (defadvice org-capture-finalize (after delete-frame-at-end activate)
          "Delete frame at remember finalization"
          (progn (if my-org-protocol-flag (delete-frame))
-                (setq my-org-protocol-flag nil)))
-       (defadvice org-remember-kill (after delete-frame-at-end activate)
+                (setq my-org-protocol-flag nil)))
+       (defadvice org-capture-kill (after delete-frame-at-end activate)
          "Delete frame at remember abort"
          (progn (if my-org-protocol-flag (delete-frame))
-                (setq my-org-protocol-flag nil)))
-       (defadvice org-protocol-remember (before set-org-protocol-flag activate)
+                (setq my-org-protocol-flag nil)))
+       (defadvice org-protocol-capture (before set-org-protocol-flag activate)
          (setq my-org-protocol-flag t))
 
 The result is that when you hit `ESC-R` in Mutt, emacsclient will be fired up
@@ -87,17 +98,8 @@ should bring up a Mutt instance showing the original message, in its context
 1. looking up a specific message by `Message-ID`
 2. firing up Mutt on the looked up message
 
-For the first part I use [[!debpkgsid maildir-utils]] (AKA
-[mu](http://code.google.com/p/mu0/)): a Xapian-based mail indexing tool, which
-nicely integrates with Mutt; check out
-[[my previous blog post on the subject|2009/10/mail_indexing_for_mutt/]] for a
-sample setup. Using mu, `Message-ID` lookups are as simple as:
-
-       zack@usha:~$ mu find -f l i:E1NbJad-0007x9-B7@ries.debian.org
-       /home/zack/Maildir/Debian.project/cur/1264883664_0.9472.usha,U=6320,FMD5=2284e927bb93d8a2ec434f5614dc04ba:2,S
-
-<small> Note: I'm relying upon *maildir-utils version 0.6* or greater, for all
-presented scripts. </small>
+For the first part I use [[!debpkgsid notmuch-mutt]] (see this other
+[[blog post|2011/01/how_to_use_Notmuch_with_Mutt/]] of mine).
 
 For the second part I use the
 [mutt-open](http://git.upsilon.cc/?p=utils/org-mutt.git;a=blob_plain;f=mutt-open;hb=HEAD)
@@ -136,13 +138,14 @@ Scripts and configuration snippets discussed above are available from the
 * [Emacs configuration](http://git.upsilon.cc/?p=utils/org-mutt.git;a=blob_plain;f=emacs-conf.sample;hb=HEAD)
 * [Mutt configuration](http://git.upsilon.cc/?p=utils/org-mutt.git;a=blob_plain;f=mutt-conf.sample;hb=HEAD)
 
+----
 
-**Update:** fix mutt-open to work with maildir-utils, version 7 or above
-(22/01/2011, at
-[org-camp](http://www.lifehacking.fr/mediawiki/index.php/OrgModeCampJanvier2011))
-
-**Update:** move scripts and conf to the
-[org-mutt Git repo](http://git.upsilon.cc/?p=utils/org-mutt.git;a=summary)
-(17/02/2012)
+**Update 22/01/2011:** fix mutt-open to work with maildir-utils, version 7 or
+above<br />
+**Update 17/02/2012:** move scripts and conf to the
+[org-mutt Git repo](http://git.upsilon.cc/?p=utils/org-mutt.git;a=summary)<br />
+**Update 17/10/2013:** point to notmuch-mutt blog post, getting rid of mu<br />
+**Update 17/10/2013:** update Emacs conf snippet for Org >= 0.8 (see Git
+repo)<br />
 
 [[!tag lang/english planet-debian orgmode mutt gtd hack]]