dotfiles

My personal shell configs and stuff
git clone git://git.alex.balgavy.eu/dotfiles.git
Log | Files | Refs | Submodules | README | LICENSE

muttrc (7592B)


      1 # vim: filetype=neomuttrc foldmethod=marker
      2 source `{ [ -f ~/.config/dark-theme ] && printf "colors-dark"; } || printf "colors-light";`
      3 
      4 # Don't ask to press key on shell commands
      5 set wait_key = no
      6 
      7 # Don't move to next message when modifying -- it would break notmuch macros
      8 set resolve = no
      9 
     10 set mbox_type = Maildir
     11 set mail_check=0 # don't want to automatically check new mail (handled by mbsync)
     12 unset mark_old # it's enough to see whats unread
     13 set mailcap_path = ~/.config/mailcap
     14 
     15 # PGP options
     16 set pgp_default_key = 0x67A9DD9A68AE0B7C
     17 set crypt_autosign
     18 set crypt_verify_sig
     19 set crypt_replysign
     20 set crypt_opportunistic_encrypt
     21 set pgp_self_encrypt
     22 set postpone_encrypt
     23 
     24 # We want weed
     25 set weed
     26 # (weed headers when displaying, forwarding, printing, or replying)
     27 
     28 set delete               # don't ask, just do
     29 unset confirmappend      # don't ask, just do!
     30 set quit                 # don't ask, just do!!
     31 auto_view text/*
     32 
     33 # Abort when I forget an attachment
     34 set abort_noattach = yes
     35 set abort_noattach_regex = "attach|attached|attachments?"
     36 
     37 # For key bindings, do :exec what-key
     38 
     39 # Sidebar
     40 set sidebar_visible = yes
     41 set sidebar_width = 20
     42 set sidebar_short_path = yes
     43 set sidebar_next_new_wrap = yes
     44 set mail_check_stats
     45 set sidebar_format = '%D%?F? [%F]?%* %?N?%N/? %?S?%S?'
     46 bind index,pager \Cp sidebar-prev
     47 bind index,pager \Cn sidebar-next
     48 bind index,pager \Cl sidebar-open
     49 bind index,pager B sidebar-toggle-visible
     50 bind index,browser t tag-entry
     51 
     52 # Switch ; and : keys
     53 unbind generic,pager :
     54 unbind generic,pager ;
     55 bind generic,compose,attach \Cl refresh
     56 bind generic,pager \; enter-command
     57 bind generic : tag-prefix
     58 
     59 set date_format = "%d/%m"
     60 
     61 set index_format="%2C %Z %?X?A& ? %?[1y?%[%b %d %H:%M]&%[%F %H:%M]? %-15.15F %s (%-4.4c) %> [%g]"
     62 set pager_format="-%Z- %C/%m: %-20.20n %-20.40A   %?[1y?%[%b %d %H:%M]&%[%F %H:%M]?   %s%*  -- (%P)"
     63 # this is:
     64 #   current message number (width 2)
     65 #   message status flags
     66 #   if (num_mime_attachments != 0) ("A") (" ")
     67 #   if (message_date within 1y) (abbrev_month, day of month) (ISO format)
     68 #   author/recipient name (left aligned, width 15 chars, max 15 chars)
     69 #   subject
     70 #   num characters in body (left aligned, width 4 chars, max 4 chars)
     71 #   align right
     72 #   message tags
     73 # conditionals are: %?condition?if non-zero&else?
     74 
     75 # Github issue was fixed, yay!
     76 # Threads should be sorted by date, top-to-botom.
     77 # Newest top-level messages should appear at the top.
     78 set use_threads = yes
     79 set sort = reverse-last-date-received
     80 set sort_aux = date-received
     81 
     82 # there's an issue with sorting where messages in threads should be sorted by date, top-to-bottom.
     83 # but at the moment it's a "wontfix". hopefully that changes soon.
     84 # https://github.com/neomutt/neomutt/issues/2342,
     85 set uncollapse_jump                        # don't collapse on an unread message
     86 set sort_re                                # thread based also on regex
     87 set reply_regex = "^(([Rr][Ee]?(\[[0-9]+\])?: *)?(\[[^]]+\] *)?)*"
     88 
     89 # Pager
     90 set pager_index_lines = 10 # number of index lines to show
     91 set pager_context = 3      # number of context lines to show
     92 set pager_stop             # don't go to next message automatically
     93 set menu_scroll            # scroll in menus
     94 set tilde                  # show tildes like in vim
     95 unset markers              # no ugly plus signs
     96 set quote_regex = "^( {0,4}[>|:#%]| {0,4}[a-z0-9]+[>|]+)+"
     97 alternative_order text/plain text/enriched text/html
     98 
     99 bind pager k  previous-line
    100 bind pager j  next-line
    101 bind pager J next-entry
    102 bind pager K previous-entry
    103 bind pager g noop
    104 bind pager gg top
    105 bind pager G  bottom
    106 
    107 macro index ZY "<enter-command>set use_threads=yes<Enter>"
    108 macro index ZN "<enter-command>set use_threads=no<Enter>"
    109 
    110 # Composing
    111 set edit_headers                     # show headers when composing
    112 set fast_reply                       # skip to compose when replying
    113 set fcc_attach                       # save attachments with the body
    114 set mime_forward = no                # forwarded message is sent as part of body
    115 set forward_format = "Fwd: %s"       # format of subject when forwarding
    116 set forward_decode                   # decode when forwarding
    117 set attribution = "On %d, %n wrote:" # format of quoting header
    118 set reply_to                         # reply to Reply to: field
    119 unset reverse_name                   # always use my name & email instead of whatever was in the To: header
    120 set include                          # include message in replies
    121 set forward_quote                    # include message in forwards
    122 set attach_format = "%u%D%I %t%4n %T%.40d (%.40F -> %.40f)%> [%.7m/%.10M, %.6e%?C?, %C?, %s]"
    123 
    124 # General mappings
    125 macro index,pager S '<sync-mailbox><shell-escape>notmuch-hook<enter>'
    126 bind index,pager | pipe-message
    127 bind index,pager s save-message
    128 bind index,pager m mail
    129 bind compose p postpone-message
    130 bind compose l view-attach
    131 bind compose h exit
    132 bind compose L edit-language
    133 bind index p recall-message
    134 bind index g noop
    135 bind index gg       first-entry
    136 bind index G        last-entry
    137 bind index,pager R        group-reply
    138 bind index,pager r reply
    139 bind index <space>  collapse-thread
    140 bind generic,index j next-entry
    141 bind generic,index k previous-entry
    142 bind index ! shell-escape
    143 bind attach <return> view-mailcap
    144 bind attach l view-mailcap
    145 bind compose \Cr rename-attachment
    146 bind compose d edit-description
    147 bind editor <space> noop
    148 bind index G last-entry
    149 bind index gg first-entry
    150 bind pager,attach h exit
    151 bind pager l view-attachments
    152 bind index L limit
    153 bind index h noop
    154 bind index l display-message
    155 macro browser h '<change-dir><kill-line>..<enter>' "Go to parent folder"
    156 bind index,pager H view-raw-message
    157 bind browser l select-entry
    158 bind pager,browser gg top-page
    159 bind pager,browser G bottom-page
    160 bind index,pager,browser \Cd half-down
    161 bind index,pager,browser \Cu half-up
    162 bind pager <space> half-down
    163 bind pager \C? half-up # backspace key
    164 bind index \031 previous-undeleted	# Mouse wheel
    165 bind index \005 next-undeleted		# Mouse wheel
    166 bind pager \031 previous-line		# Mouse wheel
    167 bind pager \005 next-line		# Mouse wheel
    168 set query_command = "khard email --parsable %s"
    169 bind editor <Tab> complete-query
    170 bind editor ^T    complete
    171 bind index,pager M noop
    172 bind index,pager,browser / search
    173 bind index,pager,browser n search-next
    174 bind index,pager,browser N search-opposite
    175 bind index,pager f forward-message
    176 macro index A "<limit>all<enter>"
    177 
    178 # simulate the old url menu
    179 macro index,pager,attach,compose w "\
    180 <enter-command> set my_pipe_decode=\$pipe_decode pipe_decode<Enter>\
    181 <pipe-message>w3m -T text/html -config ~/.config/w3m/config<enter> \
    182 <enter-command> set pipe_decode=\$my_pipe_decode; unset my_pipe_decode<Enter>" \
    183 "call urlview to extract URLs out of a message"
    184 
    185 # simulate the old url menu
    186 macro index,pager,attach,compose \cb "\
    187 <enter-command> set my_pipe_decode=\$pipe_decode pipe_decode<Enter>\
    188 <pipe-message> urlview<Enter> \
    189 <enter-command> set pipe_decode=\$my_pipe_decode; unset my_pipe_decode<Enter>" \
    190 "call urlview to extract URLs out of a message"
    191 
    192 set nm_default_url = "notmuch://`notmuch config get database.path`"
    193 bind index,pager + entire-thread
    194 bind index,pager \Cf vfolder-from-query
    195 
    196 bind index,pager i noop
    197 source school
    198 folder-hook $folder 'source ~/.config/neomutt/school'
    199 macro index,pager is '<sync-mailbox><enter-command>source ~/.config/neomutt/school<enter><change-vfolder>Inbox (S)<enter><check-stats>' "switch to school"
    200 
    201 source personal
    202 folder-hook $folder 'source ~/.config/neomutt/personal'
    203 macro index,pager ip '<sync-mailbox><enter-command>source ~/.config/neomutt/personal<enter><change-vfolder>Inbox (P)<enter><check-stats>' "switch to personal"