#!/usr/bin/bash cd /var/tmp apt-get install -y neomutt urlscan w3m w3m-img ripmime isync msmtp vdirsyncer pass mailsync libnotify-bin lynx urlview echo 'alias mutt="neomutt "' >> ~/.zsh_aliases.d/002_neomutt.zsh BASE_USER=LukeSmithxyz BASE_REPO=mutt-wizard PROJECT=${BASE_USER}/${BASE_REPO} PRERELEASE=false # RELEASE=$(curl "https://api.github.com/repos/${PROJECT}/releases?per_page=5" | jq -r '.[0] | select( .prerelease = false ) |.tag_name') # VERSION=$(echo "${RELEASE}" | cut -c 2- | cut -f1 -d"-") VERSION=$( date +%Y-%m-%d_ )git DOWNLOAD_DIR=/tmp # make a containing directory mkdir -p /var/tmp/${BASE_REPO}-"${RELEASE}" cd /var/tmp/${BASE_REPO}-"${RELEASE}" || exit cat > ./description-pak << EOF A system for automatically configuring mutt and isync with a simple interface and safe passwords EOF cat > ./checkinstall_it.sh << 'EOF' # '$ mw add' and follow the prompts. MUTTWIZARDCONF="/usr/local/share/mutt-wizard" MUTTDIR="$HOME/.config/mutt" ACCDIR="${MUTTDIR}/accounts" COLORSCHEMES="${MUTTDIR}/colorschemes" FONTS="${MUTTDIR}/fonts" mkdir -p ${COLORSCHEMES} mkdir -p ${fonts} mkdir -p $ACCDIR git clone https://github.com/sheoak/neomutt-powerline-nerdfonts.git ${MUTTDIR}/powerline wget -c -P ${COLORSCHEMES} https://raw.githubusercontent.com/neomutt/neomutt/master/contrib/colorschemes/neonwolf-256.neomuttrc wget -c -P ${COLORSCHEMES} https://raw.githubusercontent.com/neomutt/neomutt/master/contrib/colorschemes/zenburn.neomuttrc wget -c -P ${COLORSCHEMES} https://raw.githubusercontent.com/neomutt/neomutt/master/contrib/colorschemes/vombatidae.neomuttrc wget -c -P ${COLORSCHEMES} https://raw.githubusercontent.com/neomutt/neomutt/master/contrib/colorschemes/solarized-dark-256.neomuttrc #wget -c -P ${COLORSCHEMES} https://git.sthu.org/?p=shutils.git;a=blob_plain;f=dotfiles/mutt/colors-gruvbox-shuber.muttrc;hb=master #wget -c -P ${COLORSCHEMES} https://git.sthu.org/?p=shutils.git;a=blob_plain;f=dotfiles/mutt/colors-gruvbox-shuber-extended.muttrc;hb=master cat >${COLORSCHEMES}/colors-gruvbox-shuber-extended.muttrc <${COLORSCHEMES}/colors-gruvbox-shuber.muttrc <( ${MUTTWIZARDCONF}/mutt-wizard.muttrc <<'EOF' # vim: filetype=neomuttrc # This file contains all of mutt-wizard's default settings. # mutt-wizard will have this file sourced from your muttrc. # In the interest of seamless updating, do not edit this file. # If you want to override any settings, set those in your muttrc. set mailcap_path = /usr/local/share/mutt-wizard/mailcap set date_format="%y/%m/%d %I:%M%p" set index_format="%2C %Z %?X?A& ? %D %-15.15F %s (%-4.4c)" set sort = 'reverse-date' set smtp_authenticators = 'gssapi:login' set query_command = "abook --mutt-query '%s'" set rfc2047_parameters = yes set sleep_time = 0 # Pause 0 seconds for informational messages set markers = no # Disables the `+` displayed at line wraps set mark_old = no # Unread mail stay unread until read set mime_forward = yes # attachments are forwarded with mail set wait_key = no # mutt won't ask "press key to continue" set fast_reply # skip to compose when replying set fcc_attach # save attachments with the body set forward_format = "Fwd: %s" # format of subject when forwarding set forward_quote # include message in forwards set reverse_name # reply as whomever it was to set include # include message in replies set mail_check=60 # to avoid lags using IMAP with some email providers (yahoo for example) auto_view text/html # automatically show html (mailcap uses w3m) auto_view application/pgp-encrypted alternative_order text/plain text/enriched text/html bind index,pager i noop bind index,pager g noop bind index \Cf noop # General rebindings bind index j next-entry bind index k previous-entry bind attach view-mailcap bind attach l view-mailcap bind editor noop bind index G last-entry bind index gg first-entry bind pager,attach h exit bind pager j next-line bind pager k previous-line bind pager l view-attachments bind index D delete-message bind index U undelete-message bind index L limit bind index h noop bind index l display-message bind index tag-entry #bind browser h goto-parent macro browser h '..' "Go to parent folder" bind index,pager H view-raw-message bind browser l select-entry bind pager,browser gg top-page bind pager,browser G bottom-page bind index,pager,browser d half-down bind index,pager,browser u half-up bind index,pager S sync-mailbox bind index,pager R group-reply bind index \031 previous-undeleted # Mouse wheel bind index \005 next-undeleted # Mouse wheel bind pager \031 previous-line # Mouse wheel bind pager \005 next-line # Mouse wheel bind editor complete-query macro index,pager a "set my_pipe_decode=\$pipe_decode pipe_decodeabook --add-emailset pipe_decode=\$my_pipe_decode; unset my_pipe_decode" "add the sender address to abook" macro index \Cr "T~UN." "mark all messages as read" macro index O "mbsync -a" "run mbsync to sync all mail" macro index \Cf "unset wait_keyread -p 'Enter a search term to find with notmuch: ' x; echo \$x >~/.cache/mutt_terms~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' \`\"" "show only messages matching a notmuch pattern" macro index A "all\n" "show all messages (undo limit)" # Sidebar mappings set sidebar_visible = yes set sidebar_width = 20 set sidebar_short_path = yes set sidebar_next_new_wrap = yes set mail_check_stats set sidebar_format = '%B%?F? [%F]?%* %?N?%N/? %?S?%S?' bind index,pager \Ck sidebar-prev bind index,pager \Cj sidebar-next bind index,pager \Co sidebar-open bind index,pager \Cp sidebar-prev-new bind index,pager \Cn sidebar-next-new bind index,pager B sidebar-toggle-visible EOF cat > ${MUTTWIZARDCONF}/mutt-wizard-colors.muttrc <<'EOF' # Default index colors: color index yellow default '.*' color index_author red default '.*' color index_number blue default color index_subject cyan default '.*' # New mail is boldened: color index brightyellow black "~N" color index_author brightred black "~N" color index_subject brightcyan black "~N" # Tagged mail is highlighted: color index brightyellow blue "~T" color index_author brightred blue "~T" color index_subject brightcyan blue "~T" # Other colors and aesthetic settings: mono bold bold mono underline underline mono indicator reverse mono error bold color normal default default color indicator brightblack white color sidebar_highlight red default color sidebar_divider brightblack black color sidebar_flagged red black color sidebar_new green black color normal brightyellow default color error red default color tilde black default color message cyan default color markers red white color attachment white default color search brightmagenta default color status brightyellow black color hdrdefault brightgreen default color quoted green default color quoted1 blue default color quoted2 cyan default color quoted3 yellow default color quoted4 red default color quoted5 brightred default color signature brightgreen default color bold black default color underline black default color normal default default # Regex highlighting: color header blue default ".*" color header brightmagenta default "^(From)" color header brightcyan default "^(Subject)" color header brightwhite default "^(CC|BCC)" color body brightred default "[\-\.+_a-zA-Z0-9]+@[\-\.a-zA-Z0-9]+" # Email addresses color body brightblue default "(https?|ftp)://[\-\.,/%~_:?&=\#a-zA-Z0-9]+" # URL color body green default "\`[^\`]*\`" # Green text between ` and ` color body brightblue default "^# \.*" # Headings as bold blue color body brightcyan default "^## \.*" # Subheadings as bold cyan color body brightgreen default "^### \.*" # Subsubheadings as bold green color body yellow default "^(\t| )*(-|\\*) \.*" # List items as yellow color body brightcyan default "[;:][-o][)/(|]" # emoticons color body brightcyan default "[;:][)(|]" # emoticons color body brightcyan default "[ ][*][^*]*[*][ ]?" # more emoticon? color body brightcyan default "[ ]?[*][^*]*[*][ ]" # more emoticon? color body red default "(BAD signature)" color body cyan default "(Good signature)" color body brightblack default "^gpg: Good signature .*" color body brightyellow default "^gpg: " color body brightyellow red "^gpg: BAD signature from.*" mono body bold "^gpg: Good signature" mono body bold "^gpg: BAD signature from.*" color body red default "([a-z][a-z0-9+-]*://(((([a-z0-9_.!~*'();:&=+$,-]|%[0-9a-f][0-9a-f])*@)?((([a-z0-9]([a-z0-9-]*[a-z0-9])?)\\.)*([a-z]([a-z0-9-]*[a-z0-9])?)\\.?|[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+)(:[0-9]+)?)|([a-z0-9_.!~*'()$,;:@&=+-]|%[0-9a-f][0-9a-f])+)(/([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*(;([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*)*(/([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*(;([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*)*)*)?(\\?([a-z0-9_.!~*'();/?:@&=+$,-]|%[0-9a-f][0-9a-f])*)?(#([a-z0-9_.!~*'();/?:@&=+$,-]|%[0-9a-f][0-9a-f])*)?|(www|ftp)\\.(([a-z0-9]([a-z0-9-]*[a-z0-9])?)\\.)*([a-z]([a-z0-9-]*[a-z0-9])?)\\.?(:[0-9]+)?(/([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*(;([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*)*(/([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*(;([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*)*)*)?(\\?([-a-z0-9_.!~*'();/?:@&=+$,]|%[0-9a-f][0-9a-f])*)?(#([-a-z0-9_.!~*'();/?:@&=+$,]|%[0-9a-f][0-9a-f])*)?)[^].,:;!)? \t\r\n<>\"]" EOF cat >> ${MUTTDIR}/muttrc <<'EOF' source accounts/1-cyteen42.muttrc source /usr/local/share/mutt-wizard/mutt-wizard.muttrc #source /usr/local/share/mutt-wizard/mutt-wizard-colors.muttrc set sort = threads set sort_aux = reverse-last-date-received color progress white red #source colorschemes/neonwolf-256.neomuttrc #source colorschemes/zenburn.neomuttrc #source colorschemes/vombatidae.neomuttrc source colorschemes/solarized-dark-256.neomuttrc # for solarized: # you must load solarized 16 colors theme BEFORE this # you terminal 16 colors must be set to solarized theme source powerline/powerline.neomuttrc #source powerline/powerline-rounded.neomuttrc # for gruvbox: source colorschemes/colors-gruvbox-shuber.muttrc # For neomutt uncomment this line: source colorschemes/colors-gruvbox-shuber-extended.muttrc # you must load gruvbox theme BEFORE this # you terminal 16 colors must be set to gruvbox theme #source powerline/colors/gruvbox-powerline.neomuttrc #source powerline/powerline.neomuttrc EOF mkdir -p $ACCDIR/${PROFILE_NAME} cat > $ACCDIR/1-${PROFILE_NAME}.muttrc < set folder = "/home/${USER_NAME}/.local/share/mail/mutt" set header_cache = /home/${USER_NAME}/.cache/mutt-wizard/ set message_cachedir = /home/${USER_NAME}/.cache/mutt-wizard/ set mbox_type = Maildir EOF # auto-generated with mutt-wizard: 'mw add' and follow the instructions # mailboxes populated from the email account imap server so for a clean # account just put in the standard =Inbox =Drafts =Trash =Sent =Junk PROFILE_NAME=cyteen42 EMAIL=cyteen42@yahoo.co.uk REAL_NAME="cyteen may" mkdir -p $ACCDIR/${PROFILE_NAME} cat > $ACCDIR/${PROFILE_NAME}.muttrc < set folder = "$HOME/.local/share/mail/${PROFILE_NAME}" set header_cache = $HOME/.cache/mutt-wizard/${PROFILE_NAME}/headers set message_cachedir = $HOME/.cache/mutt-wizard/${PROFILE_NAME}/bodies set mbox_type = Maildir bind index,pager gg noop bind index,pager g noop bind index,pager M noop bind index,pager C noop bind index gg first-entry macro index o "mailsync -V ${PROFILE_NAME}" "run mbsync to sync ${PROFILE_NAME}" unmailboxes * set spoolfile = "+Inbox" set record = "+Sent" set postponed = "+Drafts" set trash = "+Trash" mailboxes "=Bulk\ Mail" "=eBay\ -\ won" "=eBay\ -\ dispatched" "=Archives.2013" "=2600hz\ Blog" "=devuan_list" "=Drafts" "=Inbox" "=aliexpress" "=Raspberry\ Pi" "=Archives.2014" "=paypal" "=greencycle\ taken" "=tutum" "=Junk" "=dinodirect" "=Archives.2017" "=eBay\ -\ confirmed" "=greencycle\ offered" "=diyaudio" "=Trash" "=greencycle\ wanted" "=artisan" "=Draft" "=Archives.2015" "=eBay" "=Archives" "=eBay\ -\ Ending" "=Sent" "=dealextreme" "=eBay\ -\ new\ items" "=Archive" "=Drafts.2013" macro index,pager gi "=Inbox" "go to inbox" # mw-autogenerated macro index,pager Mi ";=Inbox" "move mail to inbox" # mw-autogenerated macro index,pager Ci ";=Inbox" "copy mail to inbox" # mw-autogenerated macro index,pager gs "=Sent" "go to sent" # mw-autogenerated macro index,pager Ms ";=Sent" "move mail to sent" # mw-autogenerated macro index,pager Cs ";=Sent" "copy mail to sent" # mw-autogenerated macro index,pager gd "=Drafts" "go to drafts" # mw-autogenerated macro index,pager Md ";=Drafts" "move mail to drafts" # mw-autogenerated macro index,pager Cd ";=Drafts" "copy mail to drafts" # mw-autogenerated macro index,pager gt "=Trash" "go to trash" # mw-autogenerated macro index,pager Mt ";=Trash" "move mail to trash" # mw-autogenerated macro index,pager Ct ";=Trash" "copy mail to trash" # mw-autogenerated macro index,pager gj "=Junk" "go to junk" # mw-autogenerated macro index,pager Mj ";=Junk" "move mail to junk" # mw-autogenerated macro index,pager Cj ";=Junk" "copy mail to junk" # mw-autogenerated macro index,pager ga "=Archives.2013" "go to archive" # mw-autogenerated macro index,pager Ma ";=Archives.2013" "move mail to archive" # mw-autogenerated macro index,pager Ca ";=Archives.2013" "copy mail to archive" # mw-autogenerated EOF #mbsync ${PROFILE_NAME}