Merge branch 'master' of github.com:LukeSmithxyz/mutt-wizard

This commit is contained in:
Luke Smith 2019-11-12 06:17:45 -05:00
commit d951fb64c5
No known key found for this signature in database
GPG Key ID: 4C50B54A911F6252
6 changed files with 34 additions and 12 deletions

View File

@ -30,5 +30,6 @@ uninstall:
rm -f $(DESTDIR)$(PREFIX)/bin/$$script; \ rm -f $(DESTDIR)$(PREFIX)/bin/$$script; \
done done
rm -rf $(DESTDIR)$(PREFIX)/share/mutt-wizard rm -rf $(DESTDIR)$(PREFIX)/share/mutt-wizard
rm -f $(DESTDIR)$(MANPREFIX)/man1/mw.1
.PHONY: install uninstall .PHONY: install uninstall

View File

@ -110,9 +110,9 @@ mutt-wizard is free/libre software, licensed under the GPLv3.
- In `/usr/share/mutt-wizard` are several global config files, including `mutt-wizard`'s default settings. You can overwride this in your `muttrc` if you wish. - In `/usr/share/mutt-wizard` are several global config files, including `mutt-wizard`'s default settings. You can overwride this in your `muttrc` if you wish.
## Watch out for these things: ## Watch out for these things:
- Gmail accounts can now create 'App Password' to use with """less secure""" applications. This password is single use (ie. for setup) and will be stored and encrypted locally. Enabling third-party applications requires turning off two-factor authentication and this will circumvent that. You might also need to manually "Enable IMAP" in the settings.
- For Gmail accounts, remember also to enable third-party ("""less secure""") applications before attempting installation. You might also need to manually "Enable IMAP" in the settings.
- Protonmail accounts will require you to set up "Protonmail Bridge" to access PM's IMAP and SMTP servers. Configure that before running mutt-wizard. - Protonmail accounts will require you to set up "Protonmail Bridge" to access PM's IMAP and SMTP servers. Configure that before running mutt-wizard.
- Protonmail bridge is prone to timing out. Watch out for this while adding an account. If the bridge times out, try again.
- If you have a university email, or enterprise-hosted email for work, there might be other hurdles or two-factor authentication you have to jump through. Some, for example, will want you to create a separate IMAP password, etc. - If you have a university email, or enterprise-hosted email for work, there might be other hurdles or two-factor authentication you have to jump through. Some, for example, will want you to create a separate IMAP password, etc.
- `isync` is not fully UTF-8 compatible, so non-Latin characters may be garbled (although sync should succeed). `mw` will also not autocreate mailbox shortcuts since it is looking for English mailbox names. I strongly recommend you to set your email language to English on your mail server to avoid these problems. - `isync` is not fully UTF-8 compatible, so non-Latin characters may be garbled (although sync should succeed). `mw` will also not autocreate mailbox shortcuts since it is looking for English mailbox names. I strongly recommend you to set your email language to English on your mail server to avoid these problems.

View File

@ -2,12 +2,13 @@
# Sync mail and give notification if there is new mail. # Sync mail and give notification if there is new mail.
export PATH=$PATH:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin export PATH=$PATH:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$(id -u)/bus DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$(id -u)/bus
export DBUS_SESSION_BUS_ADDRESS
export DISPLAY=:0.0 export DISPLAY=:0.0
[ -d "$HOME/.local/share/password-store" ] && export PASSWORD_STORE_DIR="$HOME/.local/share/password-store" [ -d "$HOME/.local/share/password-store" ] && export PASSWORD_STORE_DIR="$HOME/.local/share/password-store"
# Run only if user logged in (prevent cron errors) # Run only if user logged in (prevent cron errors)
pgrep -u "$USER" >/dev/null || { echo "$USER not logged in; sync will not run."; exit ;} pgrep -u "${USER:=$LOGNAME}" >/dev/null || { echo "$USER not logged in; sync will not run."; exit ;}
# Run only if not already running in other instance # Run only if not already running in other instance
pgrep -x mbsync >/dev/null && { echo "mbsync is already running." ; exit ;} pgrep -x mbsync >/dev/null && { echo "mbsync is already running." ; exit ;}

18
bin/mw
View File

@ -134,8 +134,22 @@ askinfo() { \
printf "\033[0m" printf "\033[0m"
done done
domain="$(echo "$fulladdr" | sed "s/.*@//")" domain="$(echo "$fulladdr" | sed "s/.*@//")"
search_query=$domain
case "$domain" in
protonmail.com|protonmail.ch|pm.me)
search_query='protonmail.com' && break;;
*)
while : ; do
printf "\nIs your email hosted with Protonmail? [yes/no] "
read -r is_protonmail
case $is_protonmail in
[Yy][Ee][Ss]) search_query='protonmail.com' && break;;
[Nn][Oo]) break;;
*) printf 'Please answer Yes or No'
esac; done;
esac
printf "\\nSearching for \033[32m%s\033[0m in \033[34m\`domains.csv\`\033[0m..." "$domain" printf "\\nSearching for \033[32m%s\033[0m in \033[34m\`domains.csv\`\033[0m..." "$domain"
serverinfo="$(grep "^$domain" "$muttshare/domains.csv" 2>/dev/null)" serverinfo="$(grep "^$search_query" "$muttshare/domains.csv" 2>/dev/null)"
if [ -z "$serverinfo" ]; then if [ -z "$serverinfo" ]; then
printf "Your email domain is not in mutt-wizard's database yet.\\nmutt-wizard will still autoconfigure everything, but you will have to manually type in your service's IMAP and SMTP server information.\\nYou can usually quickly find this by internet searching for it.\\n" printf "Your email domain is not in mutt-wizard's database yet.\\nmutt-wizard will still autoconfigure everything, but you will have to manually type in your service's IMAP and SMTP server information.\\nYou can usually quickly find this by internet searching for it.\\n"
printf "Insert the IMAP server for your email provider (excluding the port number)\\n\033[36m\t" printf "Insert the IMAP server for your email provider (excluding the port number)\\n\033[36m\t"
@ -194,7 +208,7 @@ EOF
} }
protonfinger() { printf "Getting Protonmail bridge fingerprint...\\n" protonfinger() { printf "Getting Protonmail bridge fingerprint...\\n"
fingerprint="$(msmtp --serverinfo --host=127.0.0.1 --port=1025 --tls --tls-certcheck=off)" || return 1 fingerprint="$(msmtp --serverinfo --host=127.0.0.1 --port=1025 --tls --tls-certcheck=off | grep SHA256: | sed 's/^.*: //')"
sed -ibu "s/account $title/&\ntls_trust_file\ntls_fingerprint $fingerprint/" "$msmtprc" ; rm -f "$msmtprc"bu sed -ibu "s/account $title/&\ntls_trust_file\ntls_fingerprint $fingerprint/" "$msmtprc" ; rm -f "$msmtprc"bu
} }

View File

@ -60,7 +60,7 @@ counsellor.com,imap.mail.com,993,smtp.mail.com,587
cryptolab.net,mail.autistici.org,993,smtp.autistici.org,465 cryptolab.net,mail.autistici.org,993,smtp.autistici.org,465
cumallover.me,mail.cock.li,993,mail.cock.li,587 cumallover.me,mail.cock.li,993,mail.cock.li,587
cyberservices.com,imap.mail.com,993,smtp.mail.com,587 cyberservices.com,imap.mail.com,993,smtp.mail.com,587
datentopf.org,mail.datentopf.org,993,mail.datentopf.org,587 datentopf.org,imap.migadu.com,993,smtp.migadu.com,587
deliveryman.com,imap.mail.com,993,smtp.mail.com,587 deliveryman.com,imap.mail.com,993,smtp.mail.com,587
dicksinhisan.us,mail.cock.li,993,mail.cock.li,587 dicksinhisan.us,mail.cock.li,993,mail.cock.li,587
dicksinmyan.us,mail.cock.li,993,mail.cock.li,587 dicksinmyan.us,mail.cock.li,993,mail.cock.li,587
@ -129,7 +129,7 @@ hotmail.de,outlook.office365.com,993,smtp.office365.com,587
hotmail.dk,outlook.office365.com,993,smtp.office365.com,587 hotmail.dk,outlook.office365.com,993,smtp.office365.com,587
hotmail.es,outlook.office365.com,993,smtp.office365.com,587 hotmail.es,outlook.office365.com,993,smtp.office365.com,587
hotmail.fi,outlook.office365.com,993,smtp.office365.com,587 hotmail.fi,outlook.office365.com,993,smtp.office365.com,587
hotmail.fr,imap-mail.outlook.com,993,smtp-mail.outlook.com,587 hotmail.fr,outlook.office365.com,993,smtp.office365.com,587
hotmail.gr,outlook.office365.com,993,smtp.office365.com,587 hotmail.gr,outlook.office365.com,993,smtp.office365.com,587
hotmail.hu,outlook.office365.com,993,smtp.office365.com,587 hotmail.hu,outlook.office365.com,993,smtp.office365.com,587
hotmail.it,outlook.office365.com,993,smtp.office365.com,587 hotmail.it,outlook.office365.com,993,smtp.office365.com,587
@ -143,6 +143,7 @@ hotmail.rs,outlook.office365.com,993,smtp.office365.com,587
hotmail.se,outlook.office365.com,993,smtp.office365.com,587 hotmail.se,outlook.office365.com,993,smtp.office365.com,587
hotmail.sg,outlook.office365.com,993,smtp.office365.com,587 hotmail.sg,outlook.office365.com,993,smtp.office365.com,587
hotmail.sk,outlook.office365.com,993,smtp.office365.com,587 hotmail.sk,outlook.office365.com,993,smtp.office365.com,587
humbug.pw,imap.migadu.com,993,smtp.migadu.com,587
hushmail.com,imap.hushmail.com,993,smtp.hushmail.com,465 hushmail.com,imap.hushmail.com,993,smtp.hushmail.com,465
illinois.edu, imap.gmail.com,993,smtp.gmail.com,465 illinois.edu, imap.gmail.com,993,smtp.gmail.com,465
iname.com,imap.mail.com,993,smtp.mail.com,587 iname.com,imap.mail.com,993,smtp.mail.com,587
@ -170,6 +171,7 @@ mail.mcgill.ca,outlook.office365.com,993,smtp.office365.com,587
mail.polimi.it,outlook.office365.com,993,smtp.office365.com,587 mail.polimi.it,outlook.office365.com,993,smtp.office365.com,587
mail.ru,imap.mail.ru,993,smtp.mail.ru,465 mail.ru,imap.mail.ru,993,smtp.mail.ru,465
mailbox.org,imap.mailbox.org,993,smtp.mailbox.org,587 mailbox.org,imap.mailbox.org,993,smtp.mailbox.org,587
mailbox.tu-dresden.de,msx.tu-dresden.de,993,msx.tu-dresden.de,587
mailo.com,mail.mailo.com,993,mail.mailo.com,465 mailo.com,mail.mailo.com,993,mail.mailo.com,465
memeware.net,mail.cock.li,993,mail.cock.li,587 memeware.net,mail.cock.li,993,mail.cock.li,587
ml1.net,imap.fastmail.com,993,smtp.fastmail.com,465 ml1.net,imap.fastmail.com,993,smtp.fastmail.com,465
@ -212,18 +214,20 @@ protonmail.ch,127.0.0.1,1143,127.0.0.1,1025
protonmail.com,127.0.0.1,1143,127.0.0.1,1025 protonmail.com,127.0.0.1,1143,127.0.0.1,1025
rape.lol,mail.cock.li,993,mail.cock.li,587 rape.lol,mail.cock.li,993,mail.cock.li,587
redchan.it,mail.cock.li,993,mail.cock.li,587 redchan.it,mail.cock.li,993,mail.cock.li,587
resch.pw,imap.migadu.com,993,smtp.migadu.com,587
runbox.com,mail.runbox.com,993,mail.runbox.com,587 runbox.com,mail.runbox.com,993,mail.runbox.com,587
rwth-aachen.de,mail.rwth-aachen.de,993,mail.rwth-aachen.de,587 rwth-aachen.de,mail.rwth-aachen.de,993,mail.rwth-aachen.de,587
sapo.pt,imap.sapo.pt,993,smtp.sapo.pt,587 sapo.pt,imap.sapo.pt,993,smtp.sapo.pt,587
smail.inf.h-brs.de,imap.inf.h-brs.de,993,smtp.inf.h-brs.de,587 smail.inf.h-brs.de,imap.inf.h-brs.de,993,smtp.inf.h-brs.de,587
southwales.ac.uk,imap.gmail.com,993,smtp.gmail.com,587 southwales.ac.uk,imap.gmail.com,993,smtp.gmail.com,587
spoko.pl,imap.poczta.onet.pl,993,smtp.poczta.onet.pl,465 spoko.pl,imap.poczta.onet.pl,993,smtp.poczta.onet.pl,465
stevens.edu,imap-mail.outlook.com,993,smpt-mail.outlook.com,587 stevens.edu,imap.outlook.com,993,smtp.outlook.com,587
stronzi.org,mail.autistici.org,993,smtp.autistici.org,465 stronzi.org,mail.autistici.org,993,smtp.autistici.org,465
stud.tu-darmstadt.de,imap.stud.tu-darmstadt.de,993,smtp.tu-darmstadt.de,465 stud.tu-darmstadt.de,imap.stud.tu-darmstadt.de,993,smtp.tu-darmstadt.de,465
stud.uis.no,outlook.office365.com,993,smtp.office365.com,587 stud.uis.no,outlook.office365.com,993,smtp.office365.com,587
stud.uni-bamberg.de,outlook.office365.com,993,smtp.office365.com,587 stud.uni-bamberg.de,outlook.office365.com,993,smtp.office365.com,587
student.rmit.edu.au,outlook.office365.com,993,smtp.office365.com,587 student.rmit.edu.au,outlook.office365.com,993,smtp.office365.com,587
student.tuwien.ac.at,mail.student.tuwien.ac.at,993,mail.student.tuwien.ac.at,587
students.southwales.ac.uk,imap.gmail.com,993,smtp.gmail.com,587 students.southwales.ac.uk,imap.gmail.com,993,smtp.gmail.com,587
studserv.uni-leipzig.de,studserv.uni-leipzig.de,993,studserv.uni-leipzig.de,25 studserv.uni-leipzig.de,studserv.uni-leipzig.de,993,studserv.uni-leipzig.de,25
subvertising.org,mail.autistici.org,993,smtp.autistici.org,465 subvertising.org,mail.autistici.org,993,smtp.autistici.org,465
@ -238,7 +242,6 @@ tlu.edu,imap-mail.outlook.com,993,smtp-mail.outlook.com,587
tquad.ai,imap.mail.eu-west-1.awsapps.com,993,smtp.mail.eu-west-1.awsapps.com,465 tquad.ai,imap.mail.eu-west-1.awsapps.com,993,smtp.mail.eu-west-1.awsapps.com,465
tu-harburg.de,mail.tu-harburg.de,993,mail.tu-harburg.de,587 tu-harburg.de,mail.tu-harburg.de,993,mail.tu-harburg.de,587
tuhh.de,mail.tu-harburg.de,993,mail.tu-harburg.de,587 tuhh.de,mail.tu-harburg.de,993,mail.tu-harburg.de,587
tuwien.at,mail.student.tuwien.ac.at,993,mail.student.tuwien.ac.at,587
txstate.edu,outlook.office365.com,993,smtp.office365.com,587 txstate.edu,outlook.office365.com,993,smtp.office365.com,587
ua.pt,outlook.office365.com,993,mail.ua.pt,25 ua.pt,outlook.office365.com,993,mail.ua.pt,25
uach.mx,imap.gmail.com,993,smtp.gmail.com,587 uach.mx,imap.gmail.com,993,smtp.gmail.com,587
@ -259,6 +262,7 @@ wanadoo.fr,imap.orange.fr,993,smtp.orange.fr,465
wants.dicksinhisan.us,mail.cock.li,993,mail.cock.li,587 wants.dicksinhisan.us,mail.cock.li,993,mail.cock.li,587
wants.dicksinmyan.us,mail.cock.li,993,mail.cock.li,587 wants.dicksinmyan.us,mail.cock.li,993,mail.cock.li,587
web.de,imap.web.de,993,smtp.web.de,587 web.de,imap.web.de,993,smtp.web.de,587
wit.edu,outlook.office365.com,993,smtp.office365.com,587
wp.pl,imap.wp.pl,993,smtp.wp.pl,465 wp.pl,imap.wp.pl,993,smtp.wp.pl,465
writeme.com,imap.mail.com,993,smtp.mail.com,587 writeme.com,imap.mail.com,993,smtp.mail.com,587
ya.ru,imap.yandex.com,993,smtp.yandex.com,587 ya.ru,imap.yandex.com,993,smtp.yandex.com,587
@ -272,3 +276,5 @@ yandex.net,imap.yandex.com,993,smtp.yandex.com,587
yandex.ru,imap.yandex.com,993,smtp.yandex.com,587 yandex.ru,imap.yandex.com,993,smtp.yandex.com,587
yandex.ua,imap.yandex.com,993,smtp.yandex.com,587 yandex.ua,imap.yandex.com,993,smtp.yandex.com,587
zoho.com,imap.zoho.com,993,smtp.zoho.com,465 zoho.com,imap.zoho.com,993,smtp.zoho.com,465
polito.it,mail.polito.it,993,mail.polito.it,465
studio.unibo.it,outlook.office365.com,993,smtp.office365.com,587

1 ADDRESS IMAP imap port SMTP smtp port
60 cryptolab.net mail.autistici.org 993 smtp.autistici.org 465
61 cumallover.me mail.cock.li 993 mail.cock.li 587
62 cyberservices.com imap.mail.com 993 smtp.mail.com 587
63 datentopf.org mail.datentopf.org imap.migadu.com 993 mail.datentopf.org smtp.migadu.com 587
64 deliveryman.com imap.mail.com 993 smtp.mail.com 587
65 dicksinhisan.us mail.cock.li 993 mail.cock.li 587
66 dicksinmyan.us mail.cock.li 993 mail.cock.li 587
129 hotmail.dk outlook.office365.com 993 smtp.office365.com 587
130 hotmail.es outlook.office365.com 993 smtp.office365.com 587
131 hotmail.fi outlook.office365.com 993 smtp.office365.com 587
132 hotmail.fr imap-mail.outlook.com outlook.office365.com 993 smtp-mail.outlook.com smtp.office365.com 587
133 hotmail.gr outlook.office365.com 993 smtp.office365.com 587
134 hotmail.hu outlook.office365.com 993 smtp.office365.com 587
135 hotmail.it outlook.office365.com 993 smtp.office365.com 587
143 hotmail.se outlook.office365.com 993 smtp.office365.com 587
144 hotmail.sg outlook.office365.com 993 smtp.office365.com 587
145 hotmail.sk outlook.office365.com 993 smtp.office365.com 587
146 humbug.pw imap.migadu.com 993 smtp.migadu.com 587
147 hushmail.com imap.hushmail.com 993 smtp.hushmail.com 465
148 illinois.edu imap.gmail.com 993 smtp.gmail.com 465
149 iname.com imap.mail.com 993 smtp.mail.com 587
171 mail.polimi.it outlook.office365.com 993 smtp.office365.com 587
172 mail.ru imap.mail.ru 993 smtp.mail.ru 465
173 mailbox.org imap.mailbox.org 993 smtp.mailbox.org 587
174 mailbox.tu-dresden.de msx.tu-dresden.de 993 msx.tu-dresden.de 587
175 mailo.com mail.mailo.com 993 mail.mailo.com 465
176 memeware.net mail.cock.li 993 mail.cock.li 587
177 ml1.net imap.fastmail.com 993 smtp.fastmail.com 465
214 protonmail.com 127.0.0.1 1143 127.0.0.1 1025
215 rape.lol mail.cock.li 993 mail.cock.li 587
216 redchan.it mail.cock.li 993 mail.cock.li 587
217 resch.pw imap.migadu.com 993 smtp.migadu.com 587
218 runbox.com mail.runbox.com 993 mail.runbox.com 587
219 rwth-aachen.de mail.rwth-aachen.de 993 mail.rwth-aachen.de 587
220 sapo.pt imap.sapo.pt 993 smtp.sapo.pt 587
221 smail.inf.h-brs.de imap.inf.h-brs.de 993 smtp.inf.h-brs.de 587
222 southwales.ac.uk imap.gmail.com 993 smtp.gmail.com 587
223 spoko.pl imap.poczta.onet.pl 993 smtp.poczta.onet.pl 465
224 stevens.edu imap-mail.outlook.com imap.outlook.com 993 smpt-mail.outlook.com smtp.outlook.com 587
225 stronzi.org mail.autistici.org 993 smtp.autistici.org 465
226 stud.tu-darmstadt.de imap.stud.tu-darmstadt.de 993 smtp.tu-darmstadt.de 465
227 stud.uis.no outlook.office365.com 993 smtp.office365.com 587
228 stud.uni-bamberg.de outlook.office365.com 993 smtp.office365.com 587
229 student.rmit.edu.au outlook.office365.com 993 smtp.office365.com 587
230 student.tuwien.ac.at mail.student.tuwien.ac.at 993 mail.student.tuwien.ac.at 587
231 students.southwales.ac.uk imap.gmail.com 993 smtp.gmail.com 587
232 studserv.uni-leipzig.de studserv.uni-leipzig.de 993 studserv.uni-leipzig.de 25
233 subvertising.org mail.autistici.org 993 smtp.autistici.org 465
242 tquad.ai imap.mail.eu-west-1.awsapps.com 993 smtp.mail.eu-west-1.awsapps.com 465
243 tu-harburg.de mail.tu-harburg.de 993 mail.tu-harburg.de 587
244 tuhh.de mail.tu-harburg.de 993 mail.tu-harburg.de 587
tuwien.at mail.student.tuwien.ac.at 993 mail.student.tuwien.ac.at 587
245 txstate.edu outlook.office365.com 993 smtp.office365.com 587
246 ua.pt outlook.office365.com 993 mail.ua.pt 25
247 uach.mx imap.gmail.com 993 smtp.gmail.com 587
262 wants.dicksinhisan.us mail.cock.li 993 mail.cock.li 587
263 wants.dicksinmyan.us mail.cock.li 993 mail.cock.li 587
264 web.de imap.web.de 993 smtp.web.de 587
265 wit.edu outlook.office365.com 993 smtp.office365.com 587
266 wp.pl imap.wp.pl 993 smtp.wp.pl 465
267 writeme.com imap.mail.com 993 smtp.mail.com 587
268 ya.ru imap.yandex.com 993 smtp.yandex.com 587
276 yandex.ru imap.yandex.com 993 smtp.yandex.com 587
277 yandex.ua imap.yandex.com 993 smtp.yandex.com 587
278 zoho.com imap.zoho.com 993 smtp.zoho.com 465
279 polito.it mail.polito.it 993 mail.polito.it 465
280 studio.unibo.it outlook.office365.com 993 smtp.office365.com 587

View File

@ -60,9 +60,9 @@ bind pager \031 previous-line # Mouse wheel
bind pager \005 next-line # Mouse wheel bind pager \005 next-line # Mouse wheel
bind editor <Tab> complete-query bind editor <Tab> complete-query
macro index,pager a "|abook --add-email\n" 'add sender to abook' macro index,pager a "<enter-command>set my_pipe_decode=\$pipe_decode pipe_decode<return><pipe-message>abook --add-email<return><enter-command>set pipe_decode=\$my_pipe_decode; unset my_pipe_decode<return>" "add the sender address to abook"
macro index \Cr "T~U<enter><tag-prefix><clear-flag>N<untag-pattern>.<enter>" "mark all messages as read" macro index \Cr "T~U<enter><tag-prefix><clear-flag>N<untag-pattern>.<enter>" "mark all messages as read"
macro index O "<shell-escape>mailsync -Va<enter>" "run offlineimap to sync all mail" macro index O "<shell-escape>mailsync -Va<enter>" "run mbsync to sync all mail"
macro index \Cf "<enter-command>unset wait_key<enter><shell-escape>read -p 'Enter a search term to find with notmuch: ' x; echo \$x >~/.cache/mutt_terms<enter><limit>~i \"\`notmuch search --output=messages \$(cat ~/.cache/mutt_terms) | head -n 600 | perl -le '@a=<>;s/\^id:// for@a;$,=\"|\";print@a' | perl -le '@a=<>; chomp@a; s/\\+/\\\\+/ for@a;print@a' \`\"<enter>" "show only messages matching a notmuch pattern" macro index \Cf "<enter-command>unset wait_key<enter><shell-escape>read -p 'Enter a search term to find with notmuch: ' x; echo \$x >~/.cache/mutt_terms<enter><limit>~i \"\`notmuch search --output=messages \$(cat ~/.cache/mutt_terms) | head -n 600 | perl -le '@a=<>;s/\^id:// for@a;$,=\"|\";print@a' | perl -le '@a=<>; chomp@a; s/\\+/\\\\+/ for@a;print@a' \`\"<enter>" "show only messages matching a notmuch pattern"
macro index A "<limit>all\n" "show all messages (undo limit)" macro index A "<limit>all\n" "show all messages (undo limit)"