mutt: Update neomutt configuration

Changed some colors, some keymaps and made it more flexible for new mail
account setups. Also removed most of the static gmail-related account
stuff since I don't need this in my public repo.
This commit is contained in:
Marty Oehme 2023-12-12 12:37:13 +01:00
parent 48ed4818f2
commit 78987c493e
Signed by: Marty
GPG key ID: EDBF2ED917B2EF6A
9 changed files with 36 additions and 97 deletions

View file

@ -1,68 +1,12 @@
# documentation: https://wiki.archlinux.org/index.php/isync # documentation: https://wiki.archlinux.org/index.php/isync
IMAPAccount gmail
# Address to connect to
Host imap.gmail.com
UserCmd "pass show misc/gmail-app-password | grep username | cut -d: -f2"
PassCmd "pass show misc/gmail-app-password | head -n1"
# To store the password in an encrypted file use PassCmd instead of Pass
# PassCmd "gpg2 -q --for-your-eyes-only --no-tty -d ~/.mailpass.gpg"
#
# Use SSL
TLSType IMAPS TLSType IMAPS
CertificateFile /etc/ssl/certs/ca-certificates.crt
# Throttle simultaneous access to make google happy
PipelineDepth 60
IMAPStore gmail-remote
Account gmail
MaildirStore mail-local
Subfolders Verbatim
# The trailing "/" is important
Path ~/documents/mail/ Path ~/documents/mail/
Inbox ~/documents/mail/Inbox Inbox ~/documents/mail/Inbox
# define generous maximum size to store locally SubFolders Verbatim
MaxSize 50M MaxSize 50M
Channel gmail-inbox
Far :gmail-remote:INBOX
Near :mail-local:inbox
# Exclude everything under the internal [Gmail] folder, except the interesting folders
# Automatically create missing mailboxes, both locally and on the server
Create Near
# Save the synchronization state files in the relevant directory
SyncState * SyncState *
Channel gmail-sent
Far :gmail-remote:"[Google Mail]/Sent Mail"
Near :mail-local:sent
Create Near
Channel gmail-trash
Far :gmail-remote:"[Google Mail]/Trash"
Near :mail-local:trash
Create Near
Channel gmail-important
Far :gmail-remote:"[Google Mail]/Starred"
Near :mail-local:important
Create Near
Channel gmail-drafts
Far :gmail-remote:"[Google Mail]/Drafts"
Near :mail-local:drafts
Create Near
Channel gmail-all
Far :gmail-remote:"[Google Mail]/All Mail"
Near :mail-local:archive
Create Near
# Put all the channels into one group
Group googlemail
Channel gmail-inbox
Channel gmail-important
Channel gmail-sent
Channel gmail-trash
Channel gmail-all

View file

@ -2,17 +2,17 @@
defaults defaults
auth on auth on
tls on tls on
# disable starttls to use whole connection through ssl
tls_starttls off
tls_trust_file /etc/ssl/certs/ca-certificates.crt tls_trust_file /etc/ssl/certs/ca-certificates.crt
# logfile ~/.msmtp.log # logfile ~/.msmtp.log
# Gmail # Gmail
account personal-gmail account personal-gmail
tls_starttls on
host smtp.gmail.com host smtp.gmail.com
port 587 port 587
from marty.oehme@gmail.com from marty.oehme@gmail.com
user marty.oehme@gmail.com
# password plain-text-password-goes-here
passwordeval "pass show misc/gmail-app-password | head -n1" passwordeval "pass show misc/gmail-app-password | head -n1"
# Set a default account # Set a default account
account default : personal-gmail

View file

@ -2,15 +2,14 @@
# local maildir settings # local maildir settings
set mbox_type = Maildir set mbox_type = Maildir
set folder = ~/documents/mail # This has the shortcut '+' or '=' set folder = ~/documents/mail # This has the shortcut '+' or '='
set spoolfile = "+inbox" # This has the shortcut '!' set spoolfile = "+Inbox" # This has the shortcut '!'
set postponed = "+drafts" set postponed = "+Drafts"
set trash = "+trash" set record = "+Sent"
# Disable saving outgoing mail since Gmail saves them by default. set trash = "+Trash"
unset record
mailboxes ! \ mailboxes ! \
"+important" \ "+Sent" \
"+sent" \ "+Drafts" \
"+drafts" \ "+Trash" \
"+trash" \ "+Archive" \
"+archive" "+Junk"

View file

@ -62,8 +62,8 @@ color index_number blue default
color index_subject cyan default '.*' color index_subject cyan default '.*'
# For new mail: # For new mail:
color index brightyellow black "~N" color index brightyellow brightblack "~N"
color index_author brightred black "~N" color index_author brightred brightblack "~N"
color index_subject brightcyan black "~N" color index_subject brightcyan black "~N"
color progress black cyan color progress black cyan
@ -155,7 +155,7 @@ color attachment color8 default
color signature color8 default color signature color8 default
# emails # emails
# color body color14 default '[\-\.+_a-zA-Z0-9]+@[\-\.a-zA-Z0-9]+' color body color14 default '[\-\.+_a-zA-Z0-9]+@[\-\.a-zA-Z0-9]+'
# hide "mailto" # hide "mailto"
color body color0 color0 '<mailto:[\-\.+_a-zA-Z0-9]+@[\-\.a-zA-Z0-9]+>' color body color0 color0 '<mailto:[\-\.+_a-zA-Z0-9]+@[\-\.a-zA-Z0-9]+>'

View file

@ -1,5 +1,5 @@
# open html emails in browser (or whatever GUI program is used to render HTML) # open html emails in browser (or whatever GUI program is used to render HTML)
text/html; xdg-open %s ; nametemplate=%s.html text/html; open %s ; nametemplate=%s.html
# render html emails inline using magic (uncomment the line below to use lynx instead) # render html emails inline using magic (uncomment the line below to use lynx instead)
# text/html; lynx -assume_charset=%{charset} -display_charset=utf-8 -collapse_br_tags -dump %s; nametemplate=%s.html; copiousoutput # text/html; lynx -assume_charset=%{charset} -display_charset=utf-8 -collapse_br_tags -dump %s; nametemplate=%s.html; copiousoutput
text/html; render-prettyhtml %s; nametemplate=%s.html; copiousoutput; text/html; render-prettyhtml %s; nametemplate=%s.html; copiousoutput;
@ -20,9 +20,9 @@ video/*; setsid mpv --quiet %s &; copiousoutput
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet; sc-im %s; needsterminal application/vnd.openxmlformats-officedocument.spreadsheetml.sheet; sc-im %s; needsterminal
# open anything else externally # open anything else externally
application/pdf; xdg-open %s; application/pdf; open %s;
application/*; mkdir -p /tmp/mutt \; cp %s /tmp/mutt \; xdg-open /tmp/mutt/$(basename %s) & application/*; mkdir -p /tmp/mutt \; cp %s /tmp/mutt \; open /tmp/mutt/$(basename %s) &
application/pgp-encrypted; gpg -d '%s'; copiousoutput; application/pgp-encrypted; gpg -d '%s'; copiousoutput;
application/pgp-keys; gpg --import '%s'; copiousoutput; application/pgp-keys; gpg --import '%s'; copiousoutput;

View file

@ -5,6 +5,10 @@ bind index,pager g noop # don't send group-replies with g
bind index gg first-entry bind index gg first-entry
bind index G last-entry bind index G last-entry
bind index <space> collapse-thread bind index <space> collapse-thread
macro index J <tag-entry> "tag current and select next entry"
macro index K <tag-entry><previous-undeleted><previous-undeleted> "tag current and select previous entry"
macro index t <tag-entry><previous-undeleted> "tag current entry"
# view manipulation # view manipulation
bind attach,browser,index,pager \CF next-page bind attach,browser,index,pager \CF next-page
@ -44,12 +48,12 @@ macro index,pager ,a \
"add the sender email address to khard" "add the sender email address to khard"
# mailbox navigation # mailbox navigation
macro index,pager gi "<change-folder>=inbox<enter>" "go to inbox" macro index,pager gi "<change-folder>=Inbox<enter>" "go to inbox"
macro index,pager gm "<change-folder>=important<enter>" "go to important" macro index,pager gs "<change-folder>=Sent<enter>" "go to sent"
macro index,pager gs "<change-folder>=sent<enter>" "go to sent" macro index,pager gd "<change-folder>=Drafts<enter>" "go to drafts"
macro index,pager gd "<change-folder>=drafts<enter>" "go to drafts" macro index,pager gt "<change-folder>=Trash<enter>" "go to trash"
macro index,pager gt "<change-folder>=trash<enter>" "go to trash" macro index,pager ga "<change-folder>=Archive<enter>" "go to archive"
macro index,pager ga "<change-folder>=archive<enter>" "go to archive" macro index,pager gj "<change-folder>=Junk<enter>" "go to junk"
# sidebar navigation # sidebar navigation
bind index,pager B sidebar-toggle-visible bind index,pager B sidebar-toggle-visible
bind index,pager <down> sidebar-next bind index,pager <down> sidebar-next
@ -66,8 +70,7 @@ bind pager k previous-line
bind pager j next-line bind pager j next-line
bind pager gg top bind pager gg top
bind pager G bottom bind pager G bottom
# compose postpone
bind compose p postpone-message
# markdown to html for composition # markdown to html for composition
macro compose ,m "F pandoc -s -f markdown -t html \ny^T^Utext/html; charset=UTF-8\n" "Convert from MD to HTML" macro compose ,m "F pandoc -s -f markdown -t html \ny^T^Utext/html; charset=UTF-8\n" "Convert from MD to HTML"
@ -79,9 +82,7 @@ bind index,pager ro reply
macro index,pager \CU "<enter-command> unset pipe_decode<enter><pipe-message>extract_url | fzf | clip<enter>" "get URLs" macro index,pager \CU "<enter-command> unset pipe_decode<enter><pipe-message>extract_url | fzf | clip<enter>" "get URLs"
# Refresh far imap email # Refresh far imap email
macro index O "<sync-mailbox><shell-escape>export MBSYNC_PRE=true; sync-mail<enter><sync-mailbox>" "refresh all e-mail" macro index O "<sync-mailbox><shell-escape>export MBSYNC_PRE=true; sync-mail<enter>" "refresh all e-mail"
macro index o "<sync-mailbox><shell-escape>export MBSYNC_PRE=true; sync-mail gmail-inbox<enter><sync-mailbox>" "refresh inbox e-mail"
# Send mail to taskwarrior # Send mail to taskwarrior
macro index,pager ,T "<pipe-message>mutt2task -c -d -t<enter>" "add mail as task to taskwarrior with custom description and tags" macro index,pager ,T "<pipe-message>mutt2task -c -d -t<enter>" "add mail as task to taskwarrior with custom description and tags"

View file

@ -0,0 +1,2 @@
color status color3 black '(\` )' # bubble account variation
macro generic <F4> ":source ~/.config/neomutt/profile.private<enter>"

View file

@ -0,0 +1,2 @@
color status color69 black '(\` )' # bubble account variation
macro generic <F4> ":source ~/.config/neomutt/profile.gmail<enter>"

View file

@ -1,12 +1,3 @@
# Identity
#
set realname = "Marty Oehme"
set from = "marty.oehme@gmail.com"
# # If you have another address:
# alternates "^neomutt@example\.com$"
# # Or, if you use the entire domain:
# alternates "@example\.com$"
# set reverse_name
set mail_check = 60 set mail_check = 60
set mail_check_stats set mail_check_stats
@ -52,7 +43,7 @@ set fcc_attach # attachments saved with body
# set editor = "vim" # set editor = "vim"
set mime_type_query_command = "xdg-mime query filetype" set mime_type_query_command = "xdg-mime query filetype"
# send settings # send settings
set sendmail = "/usr/bin/msmtp -a personal-gmail" set sendmail = "/usr/bin/msmtp"
set sendmail_wait = 0 set sendmail_wait = 0
# Display Settings # Display Settings