summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDirk Hohndel <hohndel@infradead.org>2010-04-09 12:53:26 -0700
committerCarl Worth <cworth@cworth.org>2010-04-22 14:22:09 -0700
commitf373ed0792aac26577fd5911ba4282e55262dc08 (patch)
treeb7dd1781be7ad7a0941d41943952a7b66471fb84
parent21965718a57613f591464ca260c0f4340c574761 (diff)
Add 'G' keybinding to folder and search view that triggers external poll
The new functions first check if an external poll script has been defined in the variable 'notmuch-external-refresh-script and if yes, runs that script before executing the existing refresh function (which is bound to '=') This can be used to have 'G' mimic the mutt behavior of polling an external mail server - or if the mail polling is already automatic, it can trigger the call to notmuch new and any necessary automatic tagging of new email. Signed-off-by: Dirk Hohndel <hohndel@infradead.org>
-rw-r--r--emacs/notmuch.el24
1 files changed, 24 insertions, 0 deletions
diff --git a/emacs/notmuch.el b/emacs/notmuch.el
index 57b7fcf..365757e 100644
--- a/emacs/notmuch.el
+++ b/emacs/notmuch.el
@@ -224,6 +224,7 @@ For a mouse binding, return nil."
(define-key map "s" 'notmuch-search)
(define-key map "o" 'notmuch-search-toggle-order)
(define-key map "=" 'notmuch-search-refresh-view)
+ (define-key map "G" 'notmuch-poll-and-search-refresh-view)
(define-key map "t" 'notmuch-search-filter-by-tag)
(define-key map "f" 'notmuch-search-filter)
(define-key map [mouse-1] 'notmuch-search-show-thread)
@@ -744,6 +745,17 @@ same relative position within the new buffer."
(goto-char (point-min))
))
+(defun notmuch-poll-and-search-refresh-view ()
+ "Run external script to import mail and refresh the current view.
+
+Checks if the variable 'notmuch-external-refresh-script is defined
+and runs the external program defined it provides. Then calls
+notmuch-search-refresh-view to refresh the current view."
+ (interactive)
+ (if (boundp 'notmuch-external-refresh-script)
+ (call-process notmuch-external-refresh-script nil nil))
+ (notmuch-search-refresh-view))
+
(defun notmuch-search-toggle-order ()
"Toggle the current search order.
@@ -802,6 +814,7 @@ current search results AND that are tagged with the given tag."
(define-key map ">" 'notmuch-folder-last)
(define-key map "<" 'notmuch-folder-first)
(define-key map "=" 'notmuch-folder)
+ (define-key map "G" 'notmuch-poll-and-folder)
(define-key map "s" 'notmuch-search)
(define-key map [mouse-1] 'notmuch-folder-show-search)
(define-key map (kbd "RET") 'notmuch-folder-show-search)
@@ -915,6 +928,17 @@ Currently available key bindings:
(if search
(notmuch-search (cdr search) notmuch-search-oldest-first))))
+(defun notmuch-poll-and-folder ()
+ "Run external script to import mail and refresh the folder view.
+
+Checks if the variable 'notmuch-external-refresh-script is defined
+and runs the external program defined it provides. Then calls
+notmuch-folder to refresh the current view."
+ (interactive)
+ (if (boundp 'notmuch-external-refresh-script)
+ (call-process notmuch-external-refresh-script nil nil))
+ (notmuch-folder))
+
;;;###autoload
(defun notmuch-folder ()
"Show the notmuch folder view and update the displayed counts."