]> git.phdru.name Git - dotfiles.git/blob - .muttrc
.muttrc: save aliases to a temporary file
[dotfiles.git] / .muttrc
1 #
2 # User configuration file for Mutt
3 #
4
5 # Note: $folder should be set _before_ any other path vars where `+' or `='
6 # is used because paths are expanded when parsed
7 #
8 #set folder=~/Mail                # Where I keep my mailboxes; I am happy with this default
9
10 # Character set for my terminal and config files (including aliases)
11 set charset=`case "$LC_CTYPE" in *UTF-8) echo utf-8 ;; *) echo koi8-r ;; esac`
12 set assumed_charset="us-ascii:utf-8:windows-1251:koi8-r" # Character sets for mail without a charset
13 set config_charset=koi8-r # Character set for this config file and alias files
14 set send_charset="us-ascii:iso-8859-1:koi8-r:windows-1251:utf-8" # Character sets for outgoing mail
15 charset-hook x-unknown koi8-r    # Show unknow encoding as koi8-r
16 charset-hook windows-1251 cp1251 # Autoconvert windoze encoding
17
18 # source aliases
19 source =mutt/aliases
20
21 # All my addresses
22 alternates `awk '{s=s"|"$0} END {print substr(s,2)}' $HOME/mail/misc/.myemail` # All my addresses
23
24 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
25 #
26 # Mailboxes to watch for new mail
27 #
28 #       mailboxes <path1> [ <path2> ... ]
29 #
30
31 mailboxes ! =admin =block =bulk =spam `echo $HOME/mail/lists/* | sed s#$HOME/mail/#=#g`
32
33 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
34 #
35 # Settings
36 #
37
38 #set indent_string='%v> '         # How to quote replied text
39
40 # Settings for dumb slow term
41 set ascii_chars=`[ -n "$SLOWTERM" ] && echo yes || echo no` # Use ASCII instead of ACS chars for threads
42 set arrow_cursor=`[ -n "$SLOWTERM" ] && echo yes || echo no` # Draw a simple cursor on slow terminals
43
44 set index_format="%4C %Z %{%b %d} %-15.15F (%4c) %s" # Somewhat different index format, which works nicely with mail lists.
45 set pager_format="%4C %Z %[%b %d] %-15.15F (%4l) %s %* ---(%P)---" # Mostly match index_format
46
47 set sort=mailbox-order           # Primary sorting method
48 #set sort=threads                 # Sort by threads,...
49 set sort_aux=date                # ...then by date
50
51 set sort_alias=unsorted
52 set sort_browser=alpha
53
54 set history=1000                 # Number of lines of history in memory
55 set history_file==tmp/.mutt-history
56 set save_history=1000            # Number of lines of history in file
57
58 set read_inc=10                  # Progress indicator when reading folders.
59 set write_inc=10                 # Progress indicator when writing folders.
60
61 set allow_8bit                   # Never do Q-P encoding on legal 8-bit chars
62 set abort_unmodified=no          # Let me send empty messages
63 set attribution=`case "$LC_TIME" in ru_RU*) echo "'В %{%a, %d %b %Y в %I:%M:%S%p %Z} %f написал:'" ;; *) echo "'On %d, %f wrote:'" ;; esac`
64 set alias_file==tmp/aliases      # Where to store aliases
65 set beep=no                      # Never beep on errors
66 set collapse_unread=no           # Do not collapse thread with unread messages
67 set confirmappend=no             # Don't ask me if i want to append to mailboxes
68 set fast_reply                   # Skip initial prompts when replying if no autoedit
69 set forward_format="[Fwd: %s]"   # Subject to use when forwarding messages
70 set help                         # Show the help lines
71 set ignore_list_reply_to         # Ignore Reply-To headers pointing to mailing lists.
72 set include=yes                  # Always include a copy when replying.
73 set locale=`echo $LC_TIME`       # Locale to format dates
74 set mail_check=30                # How often (in seconds) to poll for new mail
75 set mark_old=no                  # Distinguish between seen (but unread) and new messages
76 set mask=""                      # Show dot-files in the file browser
77 set menu_scroll                  # No implicit next-page/prev-page
78 set move=no                      # Do not move read messages to ~/mbox
79 set pager_context=1              # No. of lines of context to give when scrolling
80 set pager_index_lines=6          # How many index lines to show in the pager
81 set pager_stop                   # Don't move to the next message on next-page
82 set postponed==tmp/.mutt-postponed
83 set print=ask-no                 # Don't waste paper
84 set recall=no                    # When I say "compose", ask me whether I want to continue composing a postponed message.
85 set reply_regexp="^((re([\\[0-9\\]+])*|aw|на):[ \t]*)+[ \t]*" # A regular expression to detect replies
86 set rfc2047_parameters           # Sometimes, I get mails which use a bogus encoding for MIME parameters. Setting this shouldn't harm.
87 set sendmail_wait=5              # Wait 5 seconds before putting sendmail to the background.
88 set sig_dashes=no                # Do not add "-- " before my sig - I already have it there
89 set status_on_top                # I prefer the status bar on top
90 set suspend=no                   # Do not suspend on Ctrl+Z
91 set tilde                        # Indicate empty lines in the pager.
92 set tmpdir=~/tmp                 # Temporary files aren't stored in public places.
93 set use_domain=no                # Don't qualify local addresses with $domain
94 set use_ipv6=no                  # Speed up DNS
95 set wait_key=no                  # Do not wait for a key after running external programs, pipes
96
97 set xterm_set_titles
98 set xterm_title="%f: %?m?%m messages&no messages?%?n? N:%n?%?d? D:%d?%?b? [%b new mboxes]? [$USER@%h] mutt"
99 set xterm_icon="%f: %m%?n?:%n?%?d?/%d?%?b? [%b]? [$USER@%h] mutt"
100
101 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
102 #
103 # MIME settings
104 #
105
106 alternative_order text/enriched text/plain text
107
108 #auto_view text/html
109 #auto_view application/ms-tnef text/x-vcard
110 #auto_view application/x-gzip application/x-gunzip
111 #auto_view application/rtf
112 #set implicit_autoview # Use copiousoutput filters from mailcap for all types of attachments
113
114 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
115 #
116 # Encryption: GnuPG
117 #
118 source /usr/share/doc/mutt/examples/gpg.rc
119 set pgp_use_gpg_agent
120
121 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
122 #
123 # Header fields I don't normally want to see
124 #
125 ignore *                         # Ignore all lines by default
126
127 # I do want to see these fields, though!
128 unignore date from reply-to mail-followup-to followup-to to x-original-to cc \
129    newsgroups subject user-agent x-mailer x-url x-face
130
131 # Default list of header fields to weed when displaying
132 #
133 #ignore "from " received content- mime-version status x-status message-id
134 #ignore sender references return-path lines
135
136 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
137 #
138 # Specify the order of the headers to appear when displaying a message
139 #
140 #       hdr_order <hdr1> [ <hdr2> ... ]
141 #
142
143 hdr_order date from reply-to mail-followup-to followup-to to x-original-to cc \
144    newsgroups subject user-agent x-mailer x-url x-face
145
146 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
147 #
148 # My special headers
149 #
150
151 my_hdr X-Attribution: phd
152
153 my_hdr X-Face: \"4chVP^f8\;3Bi>x\"ic0%DuP(ZLyn:\;kzQ1njs]5,GRZG<{<\\~\`|Shxi7|)d|8uO~HFRfyym\n\
154  {[xs@OYG]2Q]0\#}0sjJp\`1^1+B6]A2+{9fW=S<O7^\"hul]^|AGtiI7SkYF-2VD?UH*h_!zuCIf+^F7\n\
155  c0x8?W,UfhCAx^YY\#1ALhvG\\2yG}LW:)zw\#1\;Yajq\"hK~S
156
157 my_hdr X-Operating-System: Debian GNU/Linux
158
159 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
160 #
161 # Identify mailing lists I subscribe to
162 #
163 #       lists <list-name> [ <list-name> ... ]
164
165 subscribe (python-(announce|dev|ideas)|.*-(list|sig))@python\.org \
166    .*@moderators\.isc\.org .*@lists\.sourceforge\.net \
167    (durus|quixote)-users@mems-exchange\.org pysqlite@lists\.initd\.org \
168    .*@googlegroups\.com mlug@unixcenter\.ru
169
170 #lists
171
172 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
173 #
174 # Change settings based on mailbox
175 #
176 #       folder-hook [!]<regexp> <command>
177 #
178 # <command> is executed when opening a mailbox matching <pattern>
179
180 # Restore defaults
181 folder-hook .* "\
182    my_hdr From: Oleg Broytman <phd@phdru.name>; \
183    my_hdr Reply-To: Oleg Broytman <phd@phdru.name>; \
184    my_hdr X-Url: http://phdru.name/; \
185    set record==sent-mail; \
186    set signature==signatures/phd@phdru.name"
187
188 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
189 #
190 # Multiple spool mailboxes
191 #
192 #       mbox-hook [!]<pattern> <mbox-mailbox>
193 #
194 # Read mail in <pattern> is moved to <mbox-mailbox> when <pattern> is closed.
195
196 #mbox-hook =mutt-users.in =mutt-users
197 #mbox-hook +TEST +inbox
198
199 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
200 #
201 # Specify default filename when saving messages
202 #
203 #       save-hook [!]<pattern> <mailbox>
204 #
205 # <mailbox> is provided as default when saving messages from <pattern>
206
207 #save-hook mutt- =mutt-mail
208 #save-hook aol\.com +spam
209
210 save-hook .* =inbox
211
212 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
213 #
214 # Specify where to save composed messages
215 #
216 #       fcc-hook [!]<pattern> <mailbox>
217 #
218 # <pattern> is recipient(s), <mailbox> is where to save a copy
219
220 #fcc-hook joe +joe
221 #fcc-hook bob +bob
222
223 #fcc-hook .* +sent
224
225 fcc-hook .* =sent-mail
226
227 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
228 #
229 # Change settings based upon message recipient
230 #
231 #       send-hook [!]<pattern> <command>
232 #
233 # <command> is executed when sending mail to an address matching <pattern>
234
235 #send-hook mutt- 'set signature=~/.sigmutt; my_hdr From: Mutt User <user@example.com>'
236
237 # Restore defaults
238 send-hook .* "\
239    my_hdr From: Oleg Broytman <phd@phdru.name>; \
240    my_hdr Reply-To: Oleg Broytman <phd@phdru.name>; \
241    my_hdr X-Url: http://phdru.name/; \
242    set signature==signatures/phd@phdru.name"
243
244 send-hook "~L '@.*\.(r|s)u$'" "\
245    my_hdr From: Олег Бройтман <phd@phdru.name>; \
246    my_hdr Reply-To: Олег Бройтман <phd@phdru.name>; \
247    set signature='iconv -f koi8-r ~/mail/signatures/phd@phdru.name-ru|'"
248
249 send-hook "~L '@(mail|list|inbox|bk)\.ru'" "\
250    my_hdr From: Олег Бройтман <phd@mail.ru>; \
251    my_hdr Reply-To: Олег Бройтман <phd@mail.ru>; \
252    my_hdr X-Url: http://my.mail.ru/mail/phd; \
253    set signature='iconv -f koi8-r ~/mail/signatures/phd@mail.ru|'"
254
255 send-hook "~L '(@|\.)(((ya|yandex|narod)\.ru)|(yandex\.com)|yandex-team\.ru)$'" "\
256    my_hdr From: Олег Бройтман <phd2@yandex.ru>; \
257    my_hdr Reply-To: Олег Бройтман <phd2@yandex.ru>; \
258    my_hdr X-Url: http://phd2.ya.ru/; \
259    set signature='iconv -f koi8-r ~/mail/signatures/phd2@yandex.ru|'"
260
261 send-hook ~u unmy_hdr Reply-To
262
263 send-hook "~L python-announce-list@python\.org" "\
264    set followup_to=no; \
265    my_hdr Reply-To: Oleg Broytman <phd@phdru.name>; \
266    my_hdr Mail-Followup-To: Oleg Broytman <phd@phdru.name>, Python Mailing List <python-list@python.org>"
267
268 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
269 #
270 # Key bindings
271 #
272
273 # Change Up/Down for pager
274 bind pager <Up> previous-line
275 bind pager <Down> next-line
276
277 bind index,pager <Esc>c copy-message
278 bind index,pager <Esc>S decode-save
279
280 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
281 #
282 # Macros
283 #
284
285 # Go to the first folder with unread messages
286 macro index C  <Home>c\n
287 macro pager C q<Home>c\n
288
289 # Move current message to inbox
290 macro index,pager S s!\n
291
292 macro index,pager <Esc>h ":auto_view text/html\n"
293 macro index,pager <Esc>H ":unauto_view text/html\n"
294
295 # Pipe spam
296 #macro index,pager z |"sa-learn --no-sync --ham\n"
297 #macro index,pager Z |"sa-learn --no-sync --spam\n"
298 macro index,pager <Esc>s "<Enter>q"|"spamassassin -d | ~/mail/bin/spamcop.py\nj"
299 macro index,pager <Esc>z "<Enter>q:set editor='vim -s ~/mail/misc/spamcop.vim'\nr:set editor=vim.sh\nqn"
300
301 # Go to main mailbox
302 macro index H  <Home>c!\n
303 macro pager H q<Home>c!\n
304
305 # Go to python mailbox
306 macro index Y  <Home>c=lists/python\n
307 macro pager Y q<Home>c=lists/python\n
308
309 # Recode base64 to 8bit, html to plain text, mustdie-1251 to koi8-r, etc.
310 macro index,pager M "|mimedecode.py | less\n"
311 macro index,pager E ":set editor=mimedecode.sh\ne:set editor=vim.sh\n"
312
313 # Convert X-Face header to an image and display it
314 macro index,pager <Esc>f |"~/mail/bin/view-x-face\n"
315
316 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
317 #
318 # Colors
319 #
320
321 # This is for an xterm with with grayish background
322
323 #     object      foreground     background regexp/pattern
324
325 color normal      default        default
326 color hdrdefault  black          default
327
328 color header      magenta        default ^(date|x-mailer|user-agent|x-operating-system):
329 color header      blue           default ^(from|to|cc|delivered-to|reply-to|mail-followup-to|x-attribution):
330 color header      brightblack    default ^subject:
331
332 color quoted      blue           default
333 color quoted1     magenta        default
334 color quoted2     red            default
335 color quoted3     green          default
336 color quoted4     cyan           default
337 color quoted5     blue           default
338 color quoted6     magenta        default
339 color quoted7     red            default
340 color quoted8     green          default
341 color quoted9     cyan           default
342 color quoted10    blue           default
343
344 color attachment  white          green
345 color error       brightred      default
346 color index       brightblack    default ~N
347 color indicator   black          cyan
348 color message     blue           default
349 color search      black          yellow
350 color signature   magenta        default
351 color status      white          blue
352 color underline   blue           default
353
354 color markers     brightblue     default
355 color tilde       blue           default
356 color tree        blue           default
357
358 # email
359 color body        brightblue     default [-a-Z_0-9.+]+@[-a-Z_0-9.]+
360
361 # URLs
362 color body        brightblue     default "(((https?|ftp|gopher|telnet)://|(mailto|file|news|about|ed2k|irc|sip|magnet):)[^' \t<>\"]+)[A-Za-z0-9/]"
363
364 # Smilies (emoticons)
365 color body        brightmagenta  default " [;:]-*[dp(){}<>|\\/]| [(){}<>|\\/]-*[;:]" # :-)
366
367 # Attributes when using a mono terminal
368 mono header underline ^Subject:
369 mono quoted bold