## 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
Function Keybind
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
Function Keybind
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
Function Keybind
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`.