# vim: filetype=neomuttrc
# Adapted from https://github.com/ceuk/mutt_dotfiles/

# Formatting   ----------------------------------------------------------------------
set date_format = "%a %d %h %H:%M"
set index_format="  %{$date_format} %zc %zs %zt  | %-30.30L | %-30.80s %> %?Y?%Y ?   "
set pager_format="%n %T %s%*  %{!%d %b · %H:%M} %?X? %X?%P"
set status_format = " %D %?u? %u ?%?R?󰗯 %R ?%?d? %d ?%?t? %t ?%?F? %F ?%?p? %p? \n  \n"
set compose_format="-- NeoMutt: Compose  [Approx. msg size: %l   Atts: %a]%>-"
set vfolder_format = "%N %?n?%3n&   ?  %8m  · %f"
set attach_format = "%u%D  %T%-75.75d %?T?&   ? %5s · %m/%M"
set sidebar_format = '%D%?Z? [%Z]?%* %?S?%S?'
index-format-hook attachment_info '=B text/calendar ~X 1' ' '
index-format-hook attachment_info '=B text/calendar' "  "
index-format-hook attachment_info '~X 1' "  "
index-format-hook attachment_info '~A' "   "


# General Colors   ------------------------------------------------------------------
color normal default default                            # general text
color error color231 color212                           # error messages
color message default default                           # messages at the bottom
color prompt default default                            # prompt text
color search black color10                              # search highlight


# Statusbar Colors   ----------------------------------------------------------------
color status color141 default
color status color0 default '(|)'                      # statusline "bubbles"
color status yellow color0 ''                           # Flagged icon
color status green color0 ''                            # Unread messages count
color status blue color0 '󰗯'                             # Read messages count icon
color status red color8 ''                              # Pending delete icon
color status color7 color0 '([a-zA-Z0-9\.,]|\[|\])(\s)'  # bubble content 1
color status color7 color0 '(\s)([a-zA-Z0-9\.,]|\[|\])'  # bubble content 2
color status color7 color0 '(\% )'                       # % symbol
color status color7 color0 '(\S)'                        # empty spaces
# color status color69 black '(\` )'                      # bubble account variation
color status white color69 '([a-zA-Z0-9\.]+)( )'         # account text


# Index Colors   --------------------------------------------------------------------
color index color4 default '~N'                # new messages
color index color15 default '~R'                 # read messages
color index color8 default '~Q'                 # messages which have been replied to
color index_collapsed color4 default            # collapsed thread (message count text)
# color index color5 default '!~Q^~p'             # sent only to me and haven't been replied to
color index color22 default '~h X-Label..'     # messages with a complete label
color index color5 default '~F'                 # flagged messages
color index color6 default '~F~N'               # flagged messages (new)
color index color6 default '~F~R'              # flagged messages (read)
color index color1 default '~D'                 # deleted messages
color index color1 default '~D~N'               # deleted messages (new)
color index color9 default '~D~R'               # deleted messages (read)
color index color3 default '~T'                 # tagged messages
color index color3 default '~T~N'               # tagged messages (new)
color index color11 default '~T~R'              # tagged messages (read)
color tree  color8 color8                       # thread tree lines/arrow
color indicator default color8                  # selection indicator
color index_date color14 default                 # date is always the same colour
color index_label color6 default                # label is always the same colour


# Sidebar Colors   ------------------------------------------------------------------
color sidebar_indicator color14 black   # currently selected mailbox
color sidebar_highlight white color8    # highlighted, but not open, mailbox.
color sidebar_ordinary color8 default   # Color to give mailboxes by default
color sidebar_divider color8 black      # divider between sidebar & content
color sidebar_flagged red black         # mailboxes containing flagged mail
color sidebar_new green black           # mailboxes containing new mail
color sidebar_unread color7 default     # mailboxes containing unread mail
color sidebar_unread color7 default     # mailboxes containing unread mail


# Message Headers   -----------------------------------------------------------------
color hdrdefault color8 default


# Message Body   --------------------------------------------------------------------

# Attachments
color attachment color8 default

# Signature
color signature color8 default

# emails
# color body  color14 default  '[\-\.+_a-zA-Z0-9]+@[\-\.a-zA-Z0-9]+'

# hide "mailto"
color body  color0 color0  '<mailto:[\-\.+_a-zA-Z0-9]+@[\-\.a-zA-Z0-9]+>'

# URLs
color body  color3 default  '(https?|ftp)://[-\.,/%~_:?&=\#a-zA-Z0-9\+]+'

# Dividers
color body color8 default '(^[-_]*$)'

# Important info in calendar invites
color body color6 default '^(Date\/Time|Location|Organiser|Invitees|Teams Meeting)(:| \~\~)'

# Quotes
color quoted		color61		default
color quoted1		color117	default
color quoted2		color84		default
color quoted3		color215	default
color quoted4		color212	default

# Forward/reply headers
color body color8 default '(^(To|From|Sent|Subject):.*)'

# Patch syntax highlighting
# color   body    brightwhite     default         '^[[:space:]].*'
# color   body    yellow          default         ^(diff).*
# color   body    white           default         ^[\-\-\-].*
# color   body    white           default         ^[\+\+\+].*
# color   body    green           default         ^[\+].*
# color   body    red             default         ^[\-].*
# color   body    brightblue      default         [@@].*
# color   body    cyan            default         ^(Signed-off-by).*
# color   body    brightwhite     default         ^(Cc)
# color   body    yellow          default         "^diff \-.*"
# color   body    brightwhite     default         "^index [a-f0-9].*"
# color   body    brightblue      default         "^---$"
# color   body    white           default         "^\-\-\- .*"
# color   body    white           default         "^[\+]{3} .*"
# color   body    green           default         "^[\+][^\+]+.*"
# color   body    red             default         "^\-[^\-]+.*"
# color   body    brightblue      default         "^@@ .*"
# color   body    green           default         "LGTM"
# color   body    brightmagenta   default         "-- Commit Summary --"
# color   body    brightmagenta   default         "-- File Changes --"
# color   body    brightmagenta   default         "-- Patch Links --"
# color   body    green           default         "^Merged #.*"
# color   body    red             default         "^Closed #.*"
# color   body    brightblue      default         "^Reply to this email.*"


# Misc  -----------------------------------------------------------------------------

# no addressed to me, to me, group, cc, sent by me, mailing list
set to_chars=" "

# unchanged mailbox, changed, read only, attach mode
set status_chars = " "
ifdef crypt_chars set crypt_chars = " "
set flag_chars = "      "

# hide some tags
set hidden_tags = "unread,draft,flagged,passed,replied,attachment,signed,encrypted"
tag-transforms "replied" "↻ "  \
               "encrytpted" "" \
               "signed" "" \
               "attachment" "" \

# The formats must start with 'G' and the entire sequence is case sensitive.
tag-formats "replied" "GR" \
            "encrypted" "GE" \
            "signed" "GS" \
            "attachment" "GA" \

 # don't put '+' at the beginning of wrapped lines
set markers=no