## NeoMutt
### Table of Contents
1. [NeoMutt encrypted passwords](#neomutt-encrypted-passwords)
1. [NeoMutt Key Bindings](#neomutt-key-bindings)
1. [Replacing an existing NeoMutt configuration](#replacing-an-existing-neomutt-configuration)
### NeoMutt encrypted passwords
To use an encrypted password with NeoMutt, follow the guide at:
[https://www.xmodulo.com/mutt-email-client-encrypted-passwords.html](https://www.xmodulo.com/mutt-email-client-encrypted-passwords.html)
The ArchLinux wiki has a good article on configuring GPG to encrypt/decrypt
passwords and email. See
[https://wiki.archlinux.org/title/GnuPG](https://wiki.archlinux.org/title/GnuPG)
For example, if you have encrypted your Google NeoMutt App password in the
file `~/.neomutt/gmail.gpg` then the following can be used for GMail
authentication in `$HOME/.config/neomutt/accounts/gmail`
Create a GPG key pair
```console
gpg --gen-key
```
Create a file containing the encrypted password:
```console
echo "your_gmail_app_password" > ~/.config/neomutt/gmail
gpg -r youremail@gmail.com -e ~/.config/neomutt/gmail
rm -f ~/.config/neomutt/gmail
chmod 600 ~/.config/neomutt/gmail.gpg
```
Configure NeoMutt authentication in `$HOME/.config/neomutt/accounts/gmail`
```console
set imap_pass="`gpg --batch -q --decrypt ~/.neomutt/gmail.gpg`"
```
The first time `neomutt` is executed it will prompt you for the passphrase
used to create the GPG key pair. If you check the box to use the GPG
passphrase manager then subsequent invocations of NeoMutt will not prompt
for the passphrase. This assumes the `gpg-agent` has been installed and
configured. Many modern Linux distributions do this by default.
Creating and using encrypted passwords is strongly recommended. That's why
I spent the time to write this section of the README. A similar procedure
can be used with Mutt.
To transfer a previously generated GnuPG key pair from another system, see
[https://gist.github.com/angela-d/8b27670bac26e4bf7c431715fef5cc51](https://gist.github.com/angela-d/8b27670bac26e4bf7c431715fef5cc51)
### NeoMutt Key Bindings
The Asciiville NeoMutt configuration includes some custom key bindings
to ease NeoMutt navigation. These are documented in
`/usr/share/asciiville/neomutt/cheatsheet.md`.
The primary differences between the Asciiville NeoMutt key bindings
and the default are as follows:
- Vim keybinds. 'k' and 'j' to go up and down, and 'l' and 'h' to move forwards and back pages
- Open the sidebar with 'B'. 'Ctrl+j' and 'Ctrl+k' to navigate, 'Ctrl+o' to open selection
- 'A' will attempt to create a new contact with khard
- 'F2', 'F3', and 'F4' are used to switch between three mailboxes
The customized Asciiville NeoMutt key bindings are as follows:
#### Index
| Go to last entry |
G |
| Go to first entry |
gg |
| Page down |
d |
| Page up |
u |
| Delete message |
D |
| Delete thread |
Ctrl+d |
| Mark thread read |
Ctrl+r |
| Undelete message |
U |
| Limit/Filter |
L |
| Open message |
l, Enter |
| Group reply |
R |
| Reply |
r |
| Forward message |
f |
| New message |
m |
| View attachments |
v |
| Compose to Sender |
@ |
| Resend message |
Esc+e |
| Save message (to file) |
s |
| Toggle collapse thread |
Space, Esc+v |
| Toggle collapse all threads |
Esc+V |
| Add contact to Khard |
A |
| Jump to parent message |
P |
| Email PGP public key |
Esc+k |
#### Pager
| Bottom of page |
G |
| Top of page |
gg |
| Next line |
j |
| Previous line |
k |
| View attachments |
l |
| Page down |
d |
| Page up |
u |
| Group reply |
R,g |
| Reply |
r |
| Compose to Sender |
@ |
| Delete thread |
Ctrl+d |
| Mark thread read |
Ctrl+r |
| Mark thread new |
N |
#### Sidebar
| Show sidebar |
B |
| Up |
Ctrl+k |
| Down |
Ctrl+j |
| Open |
Ctrl+o |
| Open next new |
Ctrl+n |
| Open previous new |
Ctrl+p |
### Replacing an existing NeoMutt configuration
Asciiville `ascinit` skips NeoMutt initialization and configuration if it
detects an existing `$HOME/.config/neomutt/` folder. If you have already
configured NeoMutt then `ascinit` does not touch the existing configuration.
However, you may want to examine the NeoMutt configuration provided in
Asciiville by viewing the files in `/usr/share/asciiville/neomutt/`. If you
want to use the Asciiville NeoMutt setup files rather than your previously
configured setup, move the existing `$HOME/.config/neomutt/` folder aside
and rerun `ascinit`.