Add neomutt config. Supports arbitrary amount of accounts
This commit is contained in:
parent
d41f489ea6
commit
f9e25c49db
9 changed files with 323 additions and 0 deletions
2
config/neomutt/.gitignore
vendored
Normal file
2
config/neomutt/.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
*.mail
|
||||||
|
*.pw.gpg
|
15
config/neomutt/accounts/account.mail.example
Normal file
15
config/neomutt/accounts/account.mail.example
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
set my_account = "accountname"
|
||||||
|
set realname = "Rey"
|
||||||
|
set from = "rey@millenium.falcon"
|
||||||
|
alternates "^rey.*@millenium\\.falcon$"
|
||||||
|
set hostname = "millenium.falcon"
|
||||||
|
|
||||||
|
source 'account.rc'
|
||||||
|
|
||||||
|
set crypt_autosign
|
||||||
|
set crypt_opportunistic_encrypt
|
||||||
|
set pgp_default_key = 7F45D6BB6FEA857F9EA371D4FAB91C843694BBB8
|
||||||
|
|
||||||
|
color status blue default
|
||||||
|
|
||||||
|
# vim: syntax=neomuttrc
|
10
config/neomutt/accounts/account.rc
Normal file
10
config/neomutt/accounts/account.rc
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
set sendmail = "/usr/bin/msmtp -a $my_account"
|
||||||
|
set spoolfile = "+$my_account/Inbox"
|
||||||
|
set record = "+$my_account/Sent"
|
||||||
|
set postponed = "+$my_account/Draft"
|
||||||
|
set trash = "+$my_account/Trash"
|
||||||
|
|
||||||
|
macro index,pager gs "<shell-escape>mbsync $my_account<enter>"
|
||||||
|
|
||||||
|
# vim: syntax=neomuttrc
|
||||||
|
|
92
config/neomutt/colors.rc
Normal file
92
config/neomutt/colors.rc
Normal file
|
@ -0,0 +1,92 @@
|
||||||
|
# color OBJECT FOREGROUND BACKGROUND
|
||||||
|
|
||||||
|
#########
|
||||||
|
# INDEX #
|
||||||
|
#########
|
||||||
|
color index brightcyan default ~N
|
||||||
|
color index brightyellow default ~F
|
||||||
|
color index black green ~T
|
||||||
|
color index brightred default ~D
|
||||||
|
mono index bold ~N
|
||||||
|
mono index bold ~F
|
||||||
|
mono index bold ~T
|
||||||
|
mono index bold ~D
|
||||||
|
|
||||||
|
##############
|
||||||
|
# HIGHLIGHTS #
|
||||||
|
##############
|
||||||
|
color body brightgreen default "(http|ftp|news|telnet|finger)://[^ \"\t\r\n]*"
|
||||||
|
color body brightgreen default "mailto:[-a-z_0-9.]+@[-a-z_0-9.]+"
|
||||||
|
color body brightgreen default "[-a-z_0-9.%$]+@[-a-z_0-9.]+\\.[-a-z][-a-z]+"
|
||||||
|
mono body bold "(http|ftp|news|telnet|finger)://[^ \"\t\r\n]*"
|
||||||
|
mono body bold "mailto:[-a-z_0-9.]+@[-a-z_0-9.]+"
|
||||||
|
mono body bold "[-a-z_0-9.%$]+@[-a-z_0-9.]+\\.[-a-z][-a-z]+"
|
||||||
|
|
||||||
|
###########
|
||||||
|
# HEADERS #
|
||||||
|
###########
|
||||||
|
color header green default "^from:"
|
||||||
|
color header green default "^to:"
|
||||||
|
color header green default "^cc:"
|
||||||
|
color header green default "^date:"
|
||||||
|
color header yellow default "^newsgroups:"
|
||||||
|
color header yellow default "^reply-to:"
|
||||||
|
color header brightcyan default "^subject:"
|
||||||
|
color header red default "^x-spam-rule:"
|
||||||
|
color header yellow default "^message-id:"
|
||||||
|
color header yellow default "^Organization:"
|
||||||
|
color header yellow default "^Organisation:"
|
||||||
|
color header yellow default "^User-Agent:"
|
||||||
|
color header yellow default "^x-mailer:"
|
||||||
|
color header yellow default "^message-id: .*pine"
|
||||||
|
color header yellow default "^X-Fnord:"
|
||||||
|
color header yellow default "^X-WebTV-Stationery:"
|
||||||
|
color header yellow default "^X-Message-Flag:"
|
||||||
|
color header yellow default "^X-Spam-Status:"
|
||||||
|
color header yellow default "^X-SpamProbe:"
|
||||||
|
color header red default "^X-SpamProbe: SPAM"
|
||||||
|
|
||||||
|
##########
|
||||||
|
# QUOTES #
|
||||||
|
##########
|
||||||
|
color quoted cyan default
|
||||||
|
color quoted1 yellow default
|
||||||
|
color quoted2 red default
|
||||||
|
color quoted3 green default
|
||||||
|
color quoted4 cyan default
|
||||||
|
color quoted5 yellow default
|
||||||
|
color quoted6 red default
|
||||||
|
color quoted7 green default
|
||||||
|
|
||||||
|
|
||||||
|
###########
|
||||||
|
# SIDEBAR #
|
||||||
|
###########
|
||||||
|
color sidebar_highlight black green # Highlighted, not open
|
||||||
|
color sidebar_divider default default # divider bar
|
||||||
|
color sidebar_flagged red default # mailboxes containing flagged mail
|
||||||
|
color sidebar_new green default # mailboxes containing new mail
|
||||||
|
color sidebar_ordinary color245 default # normal mailboxes
|
||||||
|
|
||||||
|
|
||||||
|
# Default color definitions
|
||||||
|
#color hdrdefault white green
|
||||||
|
color signature brightmagenta default
|
||||||
|
color indicator black cyan
|
||||||
|
color attachment black green
|
||||||
|
color error red default
|
||||||
|
color message white default
|
||||||
|
color search brightwhite magenta
|
||||||
|
color status brightyellow blue
|
||||||
|
color tree brightblue default
|
||||||
|
color normal white default
|
||||||
|
color tilde green default
|
||||||
|
color bold brightyellow default
|
||||||
|
#color underline magenta default
|
||||||
|
color markers brightcyan default
|
||||||
|
# Colour definitions when on a mono screen
|
||||||
|
mono bold bold
|
||||||
|
mono underline underline
|
||||||
|
mono indicator reverse
|
||||||
|
|
||||||
|
# vim: syntax=neomuttrc
|
10
config/neomutt/folder-hooks.sh
Executable file
10
config/neomutt/folder-hooks.sh
Executable file
|
@ -0,0 +1,10 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Select default account
|
||||||
|
find ~/.config/neomutt/accounts/ -name "*.mail" -printf "source '%p'\n" -quit
|
||||||
|
|
||||||
|
# Setup folder hooks for all the accounts
|
||||||
|
for f in ~/.config/neomutt/accounts/*.mail; do
|
||||||
|
account="$(basename -s '.mail' "$f")"
|
||||||
|
printf 'folder-hook =%s '\''source %s'\''\n' "$account" "$f"
|
||||||
|
done
|
13
config/neomutt/gpg.rc
Normal file
13
config/neomutt/gpg.rc
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
# Use GPGME
|
||||||
|
set crypt_use_gpgme
|
||||||
|
|
||||||
|
set crypt_replysign
|
||||||
|
set crypt_replyencrypt
|
||||||
|
set crypt_replysignencrypted
|
||||||
|
set crypt_verify_sig
|
||||||
|
set crypt_opportunistic_encrypt
|
||||||
|
|
||||||
|
set pgp_self_encrypt
|
||||||
|
set smime_self_encrypt
|
||||||
|
|
||||||
|
# vim: syntax=neomuttrc
|
71
config/neomutt/keys.rc
Normal file
71
config/neomutt/keys.rc
Normal file
|
@ -0,0 +1,71 @@
|
||||||
|
###########
|
||||||
|
# GENERAL #
|
||||||
|
###########
|
||||||
|
bind index,pager N search-opposite
|
||||||
|
bind index,pager \Cu half-up
|
||||||
|
bind index,pager \Cd half-down
|
||||||
|
bind index,pager g noop # required to define multikeys binds
|
||||||
|
|
||||||
|
###########
|
||||||
|
# SIDEBAR #
|
||||||
|
###########
|
||||||
|
bind index,pager \Cj sidebar-next # Highlight next
|
||||||
|
bind index,pager \Ck sidebar-prev # Highlight previous
|
||||||
|
bind index,pager \Cl sidebar-open # Open highlighted
|
||||||
|
# For non vim users, up/down/right also work
|
||||||
|
bind index,pager B sidebar-toggle-visible # Toggle sidebar
|
||||||
|
# See also <sidebar-{page-up,page-down,next-new,prev-new}>
|
||||||
|
|
||||||
|
#########
|
||||||
|
# INDEX #
|
||||||
|
#########
|
||||||
|
bind index gg first-entry
|
||||||
|
bind index G last-entry
|
||||||
|
bind index h noop # display-toggle-weed is rubbish in index view
|
||||||
|
bind index l display-message
|
||||||
|
bind index p recall-message
|
||||||
|
bind index R group-reply
|
||||||
|
bind index <tab> sync-mailbox
|
||||||
|
bind index <space> collapse-thread
|
||||||
|
|
||||||
|
macro index \Cr "T~U<enter><tag-prefix><clear-flag>N<untag-pattern>.<enter>" "mark all messages as read"
|
||||||
|
|
||||||
|
# Saner copy/move dialogs
|
||||||
|
macro index C "<copy-message>?<toggle-mailboxes>" "copy a message to a mailbox"
|
||||||
|
macro index M "<save-message>?<toggle-mailboxes>" "move a message to a mailbox"
|
||||||
|
|
||||||
|
#########
|
||||||
|
# PAGER #
|
||||||
|
#########
|
||||||
|
bind pager h exit
|
||||||
|
bind pager K previous-undeleted
|
||||||
|
bind pager J next-undeleted
|
||||||
|
bind pager k previous-line
|
||||||
|
bind pager j next-line
|
||||||
|
bind pager gg top
|
||||||
|
bind pager G bottom
|
||||||
|
|
||||||
|
bind pager R group-reply
|
||||||
|
bind pager gh display-toggle-weed
|
||||||
|
bind pager ge extract-keys
|
||||||
|
|
||||||
|
##########
|
||||||
|
# ATTACH #
|
||||||
|
##########
|
||||||
|
# http://stevelosh.com/blog/2012/10/the-homely-mutt/
|
||||||
|
bind attach l view-mailcap
|
||||||
|
|
||||||
|
###########
|
||||||
|
# NOTMUCH #
|
||||||
|
###########
|
||||||
|
# https://a3nm.net/git/myconfig/file/mutt/muttrc.html
|
||||||
|
bind index,pager \Cf vfolder-from-query
|
||||||
|
bind index,pager z entire-thread
|
||||||
|
# Addresses autocompetion using notmuch
|
||||||
|
# https://github.com/neomutt/neomutt/issues/629
|
||||||
|
set query_command = "notmuch address from:%s"
|
||||||
|
bind editor <Tab> complete-query
|
||||||
|
bind editor ^T complete
|
||||||
|
set query_format="%4c %t %-70.70a %-70.70n %?e?(%e)?"
|
||||||
|
|
||||||
|
# vim: syntax=neomuttrc
|
91
config/neomutt/neomuttrc
Normal file
91
config/neomutt/neomuttrc
Normal file
|
@ -0,0 +1,91 @@
|
||||||
|
# Maildir setup
|
||||||
|
set mbox_type = Maildir
|
||||||
|
set copy # See also $record (f*ckin recursion)
|
||||||
|
set folder = "~/mail"
|
||||||
|
unmailboxes *
|
||||||
|
mailboxes = `find ~/mail -mindepth 1 -type d ! -name cur ! -name tmp ! -name new -printf '"%p"\0' | xargs -0`
|
||||||
|
|
||||||
|
# Load external configs
|
||||||
|
source sidebar.rc
|
||||||
|
source colors.rc
|
||||||
|
source gpg.rc
|
||||||
|
source keys.rc
|
||||||
|
|
||||||
|
# Accounts
|
||||||
|
source '~/.config/neomutt/folder-hooks.sh|'
|
||||||
|
|
||||||
|
# Basic options
|
||||||
|
unset wait_key # Only wait if command exited != 0
|
||||||
|
set mail_check = 0 # minimum time between scans
|
||||||
|
set delete # delete messages for real
|
||||||
|
unset confirmappend # don't ask when adding to a mailbox
|
||||||
|
set quit #default; <quit> exits neomutt
|
||||||
|
unset move #default; don't move read messages
|
||||||
|
unset mark_old # don't mark unread mail as old when exiting mailbox
|
||||||
|
set beep_new # Hope your term bell is set to something sensible :P
|
||||||
|
set pipe_decode # decode and weed headers before <pipe-message>
|
||||||
|
set thorough_search #default; decode mail before searching ~b and ~h
|
||||||
|
set sleep_time = 0 # Speed up folder opening
|
||||||
|
|
||||||
|
# Status bar
|
||||||
|
set status_chars = " *%A" # mailbox unchanged/changed/RO/attach-msg mode
|
||||||
|
set status_format = "───[ Folder: %f ]───[%r%m messages%?n? (%n new)?%?d? (%d to delete)?%?t? (%t tagged)? ]───%>─%?p?( %p postponed )?───"
|
||||||
|
|
||||||
|
#########
|
||||||
|
# Index #
|
||||||
|
#########
|
||||||
|
set date_format = "%d/%m/%y %H:%M"
|
||||||
|
set index_format = "[%Z] %D - %-20.20F %s"
|
||||||
|
set sort = threads
|
||||||
|
set sort_aux = last-date-received
|
||||||
|
set uncollapse_jump # Jump to unread when unfolding
|
||||||
|
set sort_re #default; useful for mailbox sort in sidebar
|
||||||
|
|
||||||
|
#########
|
||||||
|
# Pager #
|
||||||
|
#########
|
||||||
|
set pager_index_lines = 10 # lines aboves the pager
|
||||||
|
set pager_context = 3 # lines of context around selected msg in index
|
||||||
|
set pager_stop # don't jump to next msg when scrolling past the end
|
||||||
|
set menu_scroll # don't skip to next page when reaching bottom
|
||||||
|
set tilde # pad blank lines with '~'
|
||||||
|
unset markers # remove '+' on wrapped lines
|
||||||
|
set smart_wrap #default; wrap at word boundaries
|
||||||
|
set quote_regex = "^( {0,4}[>|:#%]| {0,4}[a-z0-9]+[>|]+)+"
|
||||||
|
# Prefer plaintext and process html through mailcap
|
||||||
|
alternative_order text/plain text/enriched text/html
|
||||||
|
auto_view text/html
|
||||||
|
# Prune headers
|
||||||
|
ignore *
|
||||||
|
unignore From To Reply-To Cc Bcc Subject Date
|
||||||
|
unignore Organization X-Label X-Mailer User-Agent
|
||||||
|
|
||||||
|
###########
|
||||||
|
# Compose #
|
||||||
|
###########
|
||||||
|
set use_from # set a From: header
|
||||||
|
set use_envelope_from # which from?
|
||||||
|
set sig_dashes # dashes before sig
|
||||||
|
set edit_headers # show headers when composing
|
||||||
|
set fast_reply # skip to compose when replying
|
||||||
|
set askcc # ask for CC:
|
||||||
|
set fcc_attach # save attachments with the body
|
||||||
|
unset mime_forward # forward attachments as part of body
|
||||||
|
set forward_format = "Fwd: %s" # format of subject when forwarding
|
||||||
|
set forward_decode # decode when forwarding
|
||||||
|
set attribution = "On %d, %n wrote:" # format of quoting header
|
||||||
|
set reply_to # reply to Reply to: field
|
||||||
|
set reverse_name # reply as whomever it was to
|
||||||
|
set include # include message in replies
|
||||||
|
set forward_quote # include message in forwards
|
||||||
|
set send_charset = utf-8
|
||||||
|
set sendmail_wait = 0 # wait for msmtp to finish sending
|
||||||
|
set abort_noattach = ask-yes # warn for missing attachment
|
||||||
|
set abort_noattach_regex = "\\<(attach(|ed|ments?)|(attaché|attachés|attache|attachons|joint|jointe|joints|jointes|joins|joignons))\\>"
|
||||||
|
|
||||||
|
set editor = "vim -c 'set tw=70 et wrap' '+/^$' "
|
||||||
|
|
||||||
|
###########
|
||||||
|
# Browser #
|
||||||
|
###########
|
||||||
|
set mask = ".*" # Which files to match
|
19
config/neomutt/sidebar.rc
Normal file
19
config/neomutt/sidebar.rc
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
set sidebar_visible
|
||||||
|
set mail_check_stats # update unread/flagged/total counts
|
||||||
|
set sidebar_format = '%B%?F? [%!]?%* %?N?%N/?%?S?%S?'
|
||||||
|
set sidebar_width = 32 # Note: some chars take two columns (chinese)
|
||||||
|
set sidebar_short_path # Keep only end of mailbox path
|
||||||
|
set sidebar_component_depth = 0 # nb of parent subdirs to hide
|
||||||
|
set sidebar_delim_chars = '/.' # mailbox path sep, '.' is used with IMAP
|
||||||
|
set sidebar_divider_char = '|' # UI separator bar char
|
||||||
|
set sidebar_folder_indent # indent according to path tree
|
||||||
|
set sidebar_indent_string = ' '
|
||||||
|
set sidebar_new_mail_only # Only display mailbox with new/flagged mail
|
||||||
|
unset sidebar_next_new_wrap # wrap <sidebar-{next,prev}-new> to beginning
|
||||||
|
unset sidebar_on_right # keep bar on the left
|
||||||
|
set sidebar_sort_method = 'path' # sort by mailbox path alphabetically
|
||||||
|
# Override sidebar_new_mail_only
|
||||||
|
sidebar_whitelist `find ~/mail -mindepth 1 -maxdepth 1 -type d ! -name cur ! -name tmp ! -name new ! -name .notmuch -printf '"%p"\0' | xargs -0`
|
||||||
|
sidebar_whitelist `find ~/mail -mindepth 1 -type d -iname inbox -printf '"%p"\0' | xargs -0`
|
||||||
|
|
||||||
|
# vim: syntax=neomuttrc
|
Loading…
Reference in a new issue