This repository has been archived on 2024-10-22. You can view files and clone it, but cannot push or open issues or pull requests.
spacemacs/layers/+email/notmuch/README.org
2018-02-06 14:25:48 +02:00

8.3 KiB

Notmuch layer

/TakeV/spacemacs/media/commit/19b478efbda00542e6aac19beb04534d6540f806/layers/+email/notmuch/img/notmuch.png

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 notmuch emacs package into spacemacs.

Features:

  • Email searching
  • Email tagging

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.

Configuration

Sending and Receiving emails

For this you will need an external program.

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.

Sending emails with Thunderbird

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

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"))))

See also

Refer to the official notmuch website for more information: https://notmuchmail.org/

Key bindings

Global bindings

Keybinding Command
SPC a N N Start notmuch
SPC a N n Start helm notmuch
SPC a N j Start a notmuch jump search
SPC a N s Start a notmuch search
SPC l o n Start notmuch in a custom layout, "@Notmuch"

Show mode

Keybinding 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

Evilified key bindings

Hello mode

Keybinding Command
J Jump to a saved search
s Show threads matching QUERY

Search mode

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

Show mode

Keybinding 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

Tree mode

Keybinding Command
* [Thread] Add/Remove tags
+ [Message] Add tags
- [Message] Remove tags
a [Message] Archive

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")))