From 31fc76b782c5ebc38ec4a6d5f4fea12fe141f460 Mon Sep 17 00:00:00 2001 From: Tomi Ollila Date: Sat, 29 Mar 2014 10:07:59 +0200 Subject: [PATCH] emacs: add defcustom notmuch-init-file and load it if exists So that users can easily organize their notmuch-specific configurations to separate file and they don't have to have notmuch configurations in *every* emacs installation they launch, especially if those need to '(require notmuch) to make the configurations possible. --- emacs/notmuch.el | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/emacs/notmuch.el b/emacs/notmuch.el index e646aa5b..233c784d 100644 --- a/emacs/notmuch.el +++ b/emacs/notmuch.el @@ -81,6 +81,18 @@ To enter a line break in customize, press \\[quoted-insert] C-j." :type '(alist :key-type (string) :value-type (string)) :group 'notmuch-search) +;; The name of this variable `notmuch-init-file' is consistent with the +;; convention used in e.g. emacs and gnus. The value, `notmuch-config[.el[c]]' +;; is consistent with notmuch cli configuration file `~/.notmuch-config'. +(defcustom notmuch-init-file (locate-user-emacs-file "notmuch-config") + "Your Notmuch Emacs-Lisp configuration file name. +If a file with one of the suffixes defined by `get-load-suffixes' exists, +it will be read instead. +This file is read once when notmuch is loaded; the notmuch hooks added +there will be called at other points of notmuch execution." + :type 'file + :group 'notmuch) + (defvar notmuch-query-history nil "Variable to store minibuffer history for notmuch queries") @@ -1013,3 +1025,9 @@ notmuch buffers exist, run `notmuch'." (setq mail-user-agent 'notmuch-user-agent) (provide 'notmuch) + +;; After provide to avoid loops if notmuch was require'd via notmuch-init-file. +(if init-file-user ; don't load init file if the -q option was used. + (let ((init-file (locate-file notmuch-init-file '("/") + (get-load-suffixes)))) + (if init-file (load init-file nil t t))))