You are viewing the documentation for the develop branch. The documentation for the release version is here .

Table of Contents

Notmuch layer

Table of ContentsClose


1. Description

Notmuch offers a fast, global-search and tag-based email system to use within your text editor or in a terminal.

This layer integrates the Notmuch Emacs package into Spacemacs.

1.1. Features:

  • Email searching
  • Email tagging

2. Install

In order to use this layer you must install Notmuch separately.

To install not much follow the instructions in installation instructions.

Then add this layer to your ~/.spacemacs. You will need to add notmuch to the existing dotspacemacs-configuration-layers list in this file.

3. Configuration

3.1. Sending and Receiving emails

For this you will need an external program.

3.1.1. Receiving emails

To be able to receive email you will need to configure an external program to do it. See the receive mail section.

After you configured your email fetcher program, maybe you would like to synchronize the email each time you call notmuch, in order to do that you could customize the variable notmuch-hello-mode-hook to call a lisp function that calls your email syncing utility.

3.1.2. Sending emails with Thunderbird

3.1.3. Sending emails with msmtp

Download and Install msmtp

Configure ~/.mailrc with the path where msmtp is found.

For example:

set sendmail="/usr/local/bin/msmtp"

Configure ~/.msmtprc example

3.2. Tags to apply when deleting

You can specifiy which tags you want to apply when you delete an email by setting the layer variable notmuch-message-deleted-tags.

Default value is to add the deleted tag and remove both inbox and unread tags.

(setq-default dotspacemacs-configuration-layers
  '((notmuch :variables notmuch-message-deleted-tags '("+deleted" "-inbox" "-unread"))))

3.3. See also

Refer to the official notmuch website for more information:

4. Key bindings

4.1. Global bindings

Key binding Command
SPC a e n N Start notmuch
SPC a e n n Start helm/counsil notmuch
SPC a e n j Start a notmuch jump search
SPC a e n s Start a notmuch search
SPC l o n Start notmuch in a custom layout, "@Notmuch"

4.2. Show mode

Key binding Command
SPC m a [ATTACHMENTS] Save all attachments
SPC m P o [PATCH] Open github patch in a new buffer
SPC m p m [PART] Choose the mime type to use for displaying
SPC m p \vert [PART] Pipe part at point to an external command
SPC m p o [PART] View part at point (prompt for a viewer)
SPC m p v [PART] View part at point in an external viewer
SPC m p s [PART] Save part at point to a file
SPC m s c [STASH] Copy CC to kill-ring
SPC m s d [STASH] Copy timestamp to kill-ring
SPC m s G [STASH] Copy From/To/Cc/Message-Id of current message to kill-ring
SPC m s l [STASH] [Mailing List Archive] Copy ML Archive URI to kill-ring
SPC m s L [STASH] [Mailing List Archive] Copy ML Archive URI to kill-ring and visit it
SPC m s i [STASH] Copy message-id to kill-ring
SPC m s I [STASH] Copy message-id without id: prefix to kill-ring
SPC m s f [STASH] Copy From address to kill-ring
SPC m s F [STASH] Copy filename to kill-ring
SPC m s s [STASH] Copy Subject to kill-ring
SPC m s t [STASH] Copy To address to kill-ring
SPC m s T [STASH] Copy tags to kill-ring

4.3. Evilified key bindings

4.3.1. Hello mode

Key binding Command
TAB Jump to next widget
S-TAB Jump to previous widget
J Jump to a saved search
s Show threads matching QUERY
= or g Refresh buffer
M-= Refresh all open notmuch buffers
? Open notmuch help buffer
G Pull new messages and refresh buffer
m Open new mail buffer
q Kill notmuch buffer
v Show current notmuch version
z Open notmuch tree buffer

4.3.2. Search mode

Key binding Command
J Jump to saved search
* [Thread] Add/Remove tags
+ [Message] Add tags
- [Message] Remove tags
a [Message] Archive

4.3.3. Show mode

Key binding Description
o Open all messages
O Close all messages
n Show next open message
N Show next message
p Show previous open message
P Show previous message
C-n Show next thread
C-p Show previous thread
d Delete messages down
D Delete messages up
J Jump search
L Filter current search
gf Find file or URL at point
gg Jump to top
G Jump to bottom
gr Refresh buffer
gR Refresh all buffers
m Compose mail

4.3.4. Tree mode

Key binding Command
* [Thread] Add/Remove tags
+ [Message] Add tags
- [Message] Remove tags
a [Message] Archive
M-d [Message] Scroll down the message pane
M-u [Message] Scroll up the message pane

5. Spacemacs layout integration

This layer defines a Spacemacs custom layout and automatically adds notmuch buffers to this layout. The name and the key binding for the layout can be customized with the following layer variables:

  • notmuch-spacemacs-layout-name for the layout name,
  • notmuch-spacemacs-layout-binding for the key binding.

The following example configures the layout with the default name and binding:

(setq-default dotspacemacs-configuration-layers '(
  (notmuch :variables notmuch-spacemacs-layout-name "@Notmuch"
                      notmuch-spacemacs-layout-binding "n")))

Author: root

Created: 2022-05-24 Tue 11:51