   (setq notmuch-hello-thousands-separator ",")
   ; Display newest email up top.
   (setq notmuch-search-oldest-first nil))
+
+(defun l/bind-keys (mode keymaps plists)
+  "Call l/bind-key en masse for multiple keys."
+  (mapc (lambda (plist) (l/bind-key mode keymaps plist)) plists))
+
+(defun l/bind-key (mode keymaps plist)
+  "Bind the same key to multiple keymaps."
+  (let
+    (
+      (key (plist-get plist :key))
+      (func (plist-get plist :func)))
+    (mapc (lambda (keymap) (evil-define-key mode keymap key func)) keymaps)))
 
 (defun l/notmuch-hello-insert-searches ()
   "Insert the saved-searches section."

  (evil-set-initial-state 'notmuch-hello-mode 'emacs)

  ; Bindings.
  (evil-define-key 'emacs notmuch-hello-mode-map "h" 'widget-backward)
  (evil-define-key 'emacs notmuch-hello-mode-map "j" 'widget-forward)
  (evil-define-key 'emacs notmuch-hello-mode-map "k" 'widget-backward)
  (evil-define-key 'emacs notmuch-hello-mode-map "l" 'widget-forward)
  (evil-define-key 'emacs notmuch-hello-mode-map (kbd "<tab>") 'other-window)
  (evil-define-key 'emacs notmuch-hello-mode-map [escape] 'evil-force-normal-state)
  (evil-define-key 'emacs notmuch-hello-mode-map "H" 'evil-next-buffer)
  (evil-define-key 'emacs notmuch-hello-mode-map "L" 'evil-prev-buffer)

  (evil-define-key 'emacs notmuch-hello-mode-map "e" 'notmuch-jump-search)
  (evil-define-key 'emacs notmuch-hello-mode-map "g" 'notmuch-poll-and-refresh-this-buffer)
  (evil-define-key 'emacs notmuch-hello-mode-map "/" 'notmuch-search)

  (evil-define-key 'normal notmuch-show-mode-map "d" (lambda () (interactive) (l/toggle-tag "trash")))
  (evil-define-key 'normal notmuch-tree-mode-map "d" (lambda () (interactive) (l/toggle-tag "trash")))
  (evil-define-key 'normal notmuch-show-mode-map "f" (lambda () (interactive) (l/toggle-tag "flagged")))
  (evil-define-key 'normal notmuch-tree-mode-map "f" (lambda () (interactive) (l/toggle-tag "flagged")))
  (evil-define-key 'normal notmuch-show-mode-map "u" (lambda () (interactive) (l/toggle-tag "unread")))
  (evil-define-key 'normal notmuch-tree-mode-map "u" (lambda () (interactive) (l/toggle-tag "unread")))
  (evil-define-key 'normal notmuch-show-mode-map "s" (lambda () (interactive) (l/toggle-tag "spam")))
  (evil-define-key 'normal notmuch-tree-mode-map "s" (lambda () (interactive) (l/toggle-tag "spam")))

  (evil-define-key 'normal notmuch-tree-mode-map "D" (lambda () (interactive) (l/toggle-tag "trash" t)))
  (evil-define-key 'normal notmuch-tree-mode-map "F" (lambda () (interactive) (l/toggle-tag "flagged" t)))

  (evil-define-key 'normal notmuch-show-mode-map "o" 'hydra-notmuch-show/body)
  (evil-define-key 'normal notmuch-show-mode-map "r" 'notmuch-show-reply)
  (evil-define-key 'normal notmuch-show-mode-map "R" 'notmuch-show-reply-sender)

  (evil-define-key 'normal notmuch-tree-mode-map (kbd "j") 'notmuch-tree-next-message)
  (evil-define-key 'normal notmuch-tree-mode-map (kbd "k") 'notmuch-tree-prev-message)
