mirror of https://github.com/tiyn/wiki
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
135 lines
6.3 KiB
135 lines
6.3 KiB
# NeoMutt
|
|
|
|
Neomutt is a mail program that runs in your terminal.
|
|
It can be easily configured using mutt-wizard.
|
|
|
|
## Setup
|
|
|
|
### setup with mutt-wizard
|
|
|
|
- Install the dependecies: `neomutt`, `isync`, `msmtp`, `pass`
|
|
- Install mutt-wizard from [github](https://github.com/LukeSmithxyz/mutt-wizard)
|
|
(AUR is not up to date)
|
|
|
|
After installation you're able to use the commands described on mutt-wizards
|
|
github page.
|
|
You need to add the mail accounts you want to have in mutt.
|
|
|
|
- `mbsync -a` - updates all mail-accounts
|
|
|
|
#### Googlemail
|
|
To use Googlemail or as it is known now Gmail you need to either create an App
|
|
password or enable third-party applications.
|
|
|
|
### Khard in NeoMutt
|
|
|
|
- Edit `~/.config/mutt/muttrc`
|
|
- Append the following lines.
|
|
|
|
```txt
|
|
set query_command= "khard email --parsable --search-in-source-files %s"
|
|
bind editor <Tab> complete-query
|
|
bind editor ^T complete
|
|
macro index,pager A \
|
|
"<pipe message>khard add-email<return>" \
|
|
"add the sender email address to khard"
|
|
```
|
|
|
|
- You should now be able to tab-complete email-addresses in neomutt
|
|
- You can also add new ones by pressing A
|
|
|
|
### Basic config
|
|
|
|
- Edit `~/.config/mutt/muttrc`
|
|
|
|
- If you installed with mutt-wizard remove or comment out the lines
|
|
`source /usr/local/share/mutt-wizard/mutt-wizard.muttrc # mw-autogenerated`
|
|
- Add `source ~/.config/mutt/custom.muttrc`
|
|
- Create the file `~/.config/mutt/custom.muttrc` and insert the lines:
|
|
|
|
```txt
|
|
set mailcap_path = /usr/local/share/mutt-wizard/mailcap
|
|
set date_format="%y/%m/%d %I:%M%p"
|
|
set index_format="%2C %Z %?X?A& ? %D %-15.15F %s (%-4.4c)"
|
|
set sort = 'reverse-date'
|
|
set smtp_authenticators = 'gssapi:login'
|
|
set query_command = "abook --mutt-query '%s'"
|
|
set rfc2047_parameters = yes
|
|
set sleep_time = 0 # Pause 0 seconds for informational messages
|
|
set markers = no # Disables the `+` displayed at line wraps
|
|
set mark_old = no # Unread mail stay unread until read
|
|
set mime_forward = yes # attachments are forwarded with mail
|
|
set wait_key = no # mutt won't ask "press key to continue"
|
|
set fast_reply # skip to compose when replying
|
|
set fcc_attach # save attachments with the body
|
|
set forward_format = "Fwd: %s" # format of subject when forwarding
|
|
set forward_quote # include message in forwards
|
|
set reverse_nam # reply as whomever it was to
|
|
set include # include message in replies
|
|
set mail_check=60 # to avoid lags using IMAP with some email providers (yahoo for example)
|
|
auto_view text/html # automatically show html (mailcap uses w3m)
|
|
auto_view application/pgp-encrypted
|
|
alternative_order text/plain text/enriched text/html
|
|
bind index,pager i noop
|
|
bind index,pager g noop
|
|
bind index \Cf noop
|
|
|
|
# General rebindings
|
|
bind index j next-entry
|
|
bind index k previous-entry
|
|
bind attach <return> view-mailcap
|
|
bind attach l view-mailcap
|
|
bind editor <space> noop
|
|
bind index G last-entry
|
|
bind index gg first-entry
|
|
bind pager,attach h exit
|
|
bind pager j next-line
|
|
bind pager k previous-line
|
|
bind pager l view-attachments
|
|
bind index D delete-message
|
|
bind index U undelete-message
|
|
bind index L limit
|
|
bind index h noop
|
|
bind index l display-message
|
|
bind index <space> tag-entry
|
|
#bind browser h goto-parent
|
|
macro browser h '<change-dir><kill-line>..<enter>' "Go to parent folder"
|
|
bind index,pager H view-raw-message
|
|
bind browser l select-entry
|
|
bind pager,browser gg top-page
|
|
bind pager,browser G bottom-page
|
|
bind index,pager,browser d half-down
|
|
bind index,pager,browser u half-up
|
|
bind index,pager S sync-mailbox
|
|
bind index,pager R group-reply
|
|
bind index \031 previous-undeleted # Mouse wheel
|
|
bind index \005 next-undeleted # Mouse wheel
|
|
bind pager \031 previous-line # Mouse wheel
|
|
bind pager \005 next-line # Mouse wheel
|
|
bind editor <Tab> complete-query
|
|
|
|
macro index,pager a "<enter-command>set my_pipe_decode=\$pipe_decode pipe_decode<return><pipe-message>abook --add-email<return><enter-command>set pipe_decode=\$my_pipe_decode; unset my_pipe_decode<return>" "add the sender address to abook"
|
|
macro index \Cr "T~U<enter><tag-prefix><clear-flag>N<untag-pattern>.<enter>" "mark all messages as read"
|
|
macro index O "<shell-escape>mbsync -a<enter>" "run mbsync to sync all mail"
|
|
macro index \Cf "<enter-command>unset wait_key<enter><shell-escape>read -p 'Enter a search term to find with notmuch: ' x; echo \$x >~/.cache/mutt_terms<enter><limit>~i \"\`notmuch search --output=messages \$(cat ~/.cache/mutt_terms) | head -n 600 | perl -le '@a=<>;s/\^id:// for@a;$,=\"|\";print@a' | perl -le '@a=<>; chomp@a; s/\\+/\\\\+/ for@a;print@a' \`\"<enter>" "show only messages matching a notmuch pattern"
|
|
macro index A "<limit>all\n" "show all messages (undo limit)"
|
|
|
|
# Sidebar mappings
|
|
set sidebar_visible = yes
|
|
set sidebar_width = 20
|
|
set sidebar_short_path = yes
|
|
set sidebar_next_new_wrap = yes
|
|
set mail_check_stats
|
|
set sidebar_format = '%B%?F? [%F]?%* %?N?%N/? %?S?%S?'
|
|
bind index,pager \Ck sidebar-prev
|
|
bind index,pager \Cj sidebar-next
|
|
bind index,pager \Co sidebar-open
|
|
bind index,pager \Cp sidebar-prev-new
|
|
bind index,pager \Cn sidebar-next-new
|
|
bind index,pager B sidebar-toggle-visible
|
|
|
|
mono body bold "^gpg: Good signature"
|
|
mono body bold "^gpg: BAD signature from.*"
|
|
color body red default "([a-z][a-z0-9+-]*://(((([a-z0-9_.!~*'();:&=+$,-]|%[0-9a-f][0-9a-f])*@)?((([a-z0-9]([a-z0-9-]*[a-z0-9])?)\\.)*([a-z]([a-z0-9-]*[a-z0-9])?)\\.?|[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+)(:[0-9]+)?)|([a-z0-9_.!~*'()$,;:@&=+-]|%[0-9a-f][0-9a-f])+)(/([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*(;([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*)*(/([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*(;([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*)*)*)?(\\?([a-z0-9_.!~*'();/?:@&=+$,-]|%[0-9a-f][0-9a-f])*)?(#([a-z0-9_.!~*'();/?:@&=+$,-]|%[0-9a-f][0-9a-f])*)?|(www|ftp)\\.(([a-z0-9]([a-z0-9-]*[a-z0-9])?)\\.)*([a-z]([a-z0-9-]*[a-z0-9])?)\\.?(:[0-9]+)?(/([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*(;([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*)*(/([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*(;([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*)*)*)?(\\?([-a-z0-9_.!~*'();/?:@&=+$,]|%[0-9a-f][0-9a-f])*)?(#([-a-z0-9_.!~*'();/?:@&=+$,]|%[0-9a-f][0-9a-f])*)?)[^].,:;!)? \t\r\n<>\"]"
|
|
```
|