diff options
| -rw-r--r-- | README.md | 16 | ||||
| -rw-r--r-- | autoconf/domains.csv | 4 | ||||
| -rw-r--r-- | autoconf/mutt_profile | 2 | ||||
| -rw-r--r-- | autoconf/offlineimap_profile | 2 | ||||
| -rwxr-xr-x | etc/mailsync.sh | 23 | ||||
| -rw-r--r-- | etc/muttcol | 113 | ||||
| -rw-r--r-- | etc/notify.opus | bin | 0 -> 28900 bytes | |||
| -rwxr-xr-x | mutt-wizard.sh | 62 | ||||
| -rw-r--r-- | muttrc | 16 | ||||
| -rw-r--r-- | personal.muttrc | 8 | 
10 files changed, 163 insertions, 83 deletions
| @@ -15,6 +15,7 @@ The system takes an email and autodetect its server settings, generating a muttr  + Multiple account management in mutt: jump from account to account with the `i` prefix in mutt: `i1`: first email account, `i5`: fifth, etc.  + Easy movement to mail folders in mutt: `gi`: go to inbox, `gs` to sent mail, `ga` to archive, `gS` to spam, `gd` to drafts, etc.  + Some default controls and colors. This system is going to be integrated into my [public auto-rice script](https://larbs.xyz) so I want it to look pretty and be usable out the box. ++ An optional autosync script that will smartly run offlineimap when connected to the internet at what interval you want and will notify you with a ding when new mail arrives.  ### Will it work on my email? (95% yes) @@ -26,12 +27,14 @@ Note also that Gmail and some providers require you to enable sign-ins from thir  ## Installation and Dependencies -dialog, neomutt and offlineimap should be installed. You also need to have a GPG public/private key pair for the wizard to automatically store your passwords. Otherwise you'll have to store them insecurely in plaintext files without the help of the wizard. The whole repo should be cloned to `~/.config/mutt/`. (If you have a previous mutt folder, you'll want to back it up or delete it first.) +`dialog`, `neomutt` and `offlineimap` should be installed. You also need to have a GPG public/private key pair for the wizard to automatically store your passwords. The whole repo should be cloned to `~/.config/mutt/`. (If you have a previous mutt folder, you'll want to back it up or delete it first.)  ```  git clone https://github.com/LukeSmithxyz/mutt-wizard.git ~/.config/mutt  ``` +You will want to delete or rename your current `~/.offlineimaprc` as well, as although you can later modify the `~/.offlineimaprc` produced by the script, you must have no file there the first time you add your first account or the wizard will assume some settings are already set which aren't. +  Just run `mutt-wizard.sh` for all the options, to install an account:  * First, select the "Add an account" option and give the script your account information. @@ -40,6 +43,17 @@ Just run `mutt-wizard.sh` for all the options, to install an account:  Whenever you want to check for mail, just run the `offlineimap` command again. +### Non-essential dependencies + +The automatically deployed configs will look for certain programs for certain extra abilities. Consider installing the following for the extra functionality. + ++ `urlview` -- Detecting and following links with `ctrl-u` ++ `mupdf` -- for viewing attached pdfs (`v` to view attachments, then select .pdf) ++ `notmuch` -- for mail searching and indexing set to `ctrl-f`. Be sure to run `notmuch setup`. Remember your mail is in `~/.mail/` when you configure notmuch. ++ `w3m` and/or `w3mimg` -- for viewing images. Like .pdfs, view in the attachments menu. ++ A cron manager if you want the autosync feature. ++ `mpv` if you want the autosync feature to notify you with a ding on new mail. +  ### "Wait? The script asks for my passwords?"  Look at the code. The script takes the passwords you give it, encrypts them immediately with your own GPG key, and shreds the leftovers. Nothing malicious; it's all there! If it makes you comfortable you can even run the script offline at first. diff --git a/autoconf/domains.csv b/autoconf/domains.csv index 9555c81..22a5eaf 100644 --- a/autoconf/domains.csv +++ b/autoconf/domains.csv @@ -20,9 +20,11 @@ asia.com,imap.mail.com,995,smtp.mail.com,587  asia.com,imap.mail.com,995,smtp.mail.com,587  auctioneer.net,imap.mail.com,995,smtp.mail.com,587  bartender.net,imap.mail.com,995,smtp.mail.com,587 +bguth.de,wp300.webpack.hosteurope.de,993,wp300.webpack.hosteurope.de,587  bikerider.com,imap.mail.com,995,smtp.mail.com,587  billycarlyle.uk,mail.muny.us,993,mail.muny.us,465  birdlover.com,imap.mail.com,995,smtp.mail.com,587 +bjoernguthphotography.de,wp300.webpack.hosteurope.de,993,wp300.webpack.hosteurope.de,587  brew-meister.com,imap.mail.com,995,smtp.mail.com,587  cash4u.com,imap.mail.com,995,smtp.mail.com,587  cheerful.com,imap.mail.com,995,smtp.mail.com,587 @@ -57,6 +59,7 @@ engineer.com,imap.mail.com,995,smtp.mail.com,587  europe.com,imap.mail.com,995,smtp.mail.com,587  fastmail.com,imap.fastmail.com,993,smtp.fastmail.com,465  firemail.cc,mail.cock.li,993,mail.cock.li,587 +fsmpi.rwth-aachen.de,mail.fsmpi.rwth-aachen.de,993,mail.fsmpi.rwth-aachen.de,465  getbackinthe.kitchen,mail.cock.li,993,mail.cock.li,587  gmail.com,imap.google.com,993,smtp.gmail.com,587  gmx.com,imap.gmx.net,993,mail.gmx.net,587 @@ -93,6 +96,7 @@ posteo.de,posteo.de,993,posteo.de,587  rape.lol,mail.cock.li,993,mail.cock.li,587  redchan.it,mail.cock.li,993,mail.cock.li,587  runbox.com,mail.runbox.com,993,mail.runbox.com,587 +rwth-aachen.de,mail.rwth-aachen.de,993,mail.rwth-aachen.de,587  sapo.pt,imap.sapo.pt,993,smtp.sapo.pt,587  techie.com,imap.mail.com,995,smtp.mail.com,587  teknik.io,mail.teknik.io,993,mail.teknik.io,587 diff --git a/autoconf/mutt_profile b/autoconf/mutt_profile index 6983f5b..b34b5f9 100644 --- a/autoconf/mutt_profile +++ b/autoconf/mutt_profile @@ -14,5 +14,7 @@ set mbox_type = Maildir  set ssl_starttls = yes  set ssl_force_tls = yes +bind index,pager gg noop  bind index,pager g noop  bind index gg first-entry +unmailboxes * diff --git a/autoconf/offlineimap_profile b/autoconf/offlineimap_profile index ce7a01b..0711979 100644 --- a/autoconf/offlineimap_profile +++ b/autoconf/offlineimap_profile @@ -10,7 +10,7 @@ remoteuser = $login  sslcacerfile = /etc/ssl/cets/ca-certificates.crt  remotepasseval = mailpasswd("$title")  remotehost = $imap -port = $iport +remoteport = $iport  folderfilter = lambda foldername: foldername not in ['[Gmail]/All Mail']  sslcacertfile = /etc/ssl/certs/ca-certificates.crt diff --git a/etc/mailsync.sh b/etc/mailsync.sh new file mode 100755 index 0000000..61eeade --- /dev/null +++ b/etc/mailsync.sh @@ -0,0 +1,23 @@ +#!/bin/sh +# This script will run offlineimap and check +# for new email if there is an internet connection. +# +# If it detects new mail, it uses mpv to play a +# notification sound: notify.opus +# +# I have this run as a cronjob every 5 minutes. + +# Check for internet connection. Exit script if none. +ping -q -w 1 -c 1 `ip r | grep default | cut -d ' ' -f 3` >/dev/null || exit + +# Get current number of new mail, then begin sync. +ori=$(find ~/.mail -wholename '*/new/*' | grep -vi "spam\|trash\|junk" | wc -l) +offlineimap -o + +# Recount new mail. +new=$(find ~/.mail -wholename '*/new/*' | grep -vi "spam\|trash\|junk" | wc -l) + +# If new mail has grown, play a notification. +if [ "$new" -gt "$ori" ]; then +	mpv --quiet ~/.config/mutt/etc/notify.opus +fi diff --git a/etc/muttcol b/etc/muttcol index 78704fd..8524157 100644 --- a/etc/muttcol +++ b/etc/muttcol @@ -1,58 +1,71 @@  # vim: filetype=neomuttrc -mono bold bold -mono underline underline -mono indicator reverse + +# Default index colors:  color index yellow default '.*'  color index_author red default '.*'  color index_number blue default -color index_subject cyan default '.s' -color index_size green default +color index_subject cyan default '.*' + +# For new mail: +color index brightyellow black "~N" +color index_author brightred black "~N" +color index_subject brightcyan black "~N" + +# Header colors: +color header blue default ".*" +color header brightmagenta default "^(From)" +color header brightcyan default "^(Subject)" +color header brightwhite default "^(CC|BCC)" + +mono bold bold +mono underline underline +mono indicator reverse +mono error bold  color normal default default -color body brightred default [\-\.+_a-zA-Z0-9]+@[\-\.a-zA-Z0-9]+ -color body brightblue default (https?|ftp)://[\-\.,/%~_:?&=\#a-zA-Z0-9]+ -color indicator cyan black -color sidebar_highlight black color8 +color indicator brightblack white +color sidebar_highlight red default  color sidebar_divider color8 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 indicator     brightblack     yellow -mono  bold          bold -mono  underline     underline -mono  indicator     reverse -mono  error         bold -color hdrdefault    brightgreen     default -color header        brightyellow    default         "^(From)" -color header        blue            default         "^(Subject)" -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 -color body          brightcyan      default         "[;:][-o][)/(|]"    # emoticons -color body          brightcyan      default         "[;:][)(|]"         # emoticons -color body          brightcyan      default         "[*]?((N)?ACK|CU|LOL|SCNR|BRB|BTW|CWYL|\ -                                                     |FWIW|vbg|GD&R|HTH|HTHBE|IMHO|IMNSHO|\ -                                                     |IRL|RTFM|ROTFL|ROFL|YMMV)[*]?" -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<>\"]" +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 + +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 "[*]?((N)?ACK|CU|LOL|SCNR|BRB|BTW|CWYL|\ + |FWIW|vbg|GD&R|HTH|HTHBE|IMHO|IMNSHO|\ + |IRL|RTFM|ROTFL|ROFL|YMMV)[*]?" +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<>\"]" diff --git a/etc/notify.opus b/etc/notify.opusBinary files differ new file mode 100644 index 0000000..a76ce32 --- /dev/null +++ b/etc/notify.opus diff --git a/mutt-wizard.sh b/mutt-wizard.sh index 1625267..7fb5413 100755 --- a/mutt-wizard.sh +++ b/mutt-wizard.sh @@ -2,6 +2,15 @@  muttdir="$HOME/.config/mutt/" +chooseSync() { (crontab -l && testSync) || dialog --msgbox "No cronjob manager detected. Please install one and return to enable automatic mailsyncing" 10 60 ;} +testSync() { (crontab -l | grep .config/mutt/etc/mailsync && removeSync) || addSync ;} + +addSync() { min=$(dialog --inputbox "How many minutes should be between mail syncs?" 8 60 3>&1 1>&2 2>&3 3>&-) +	(crontab -l; echo "*/$min * * * * /home/$(whoami)/.config/mutt/etc/mailsync.sh") | crontab - && +	dialog --msgbox "Cronjob successfully added. Remember you may need to restart or tell systemd/etc. to start your cron manager for this to take effect." 7 60 ;} + +removeSync() { ((crontab -l | sed -e '/.config\/mutt\/etc\/mailsync/d') | crontab - >/dev/null) && dialog --msgbox "Cronjob successfully removed. To reactivate, select this option again." 6 60 ;} +  changePassword() { \  	gpgemail=$( dialog --title "Luke's mutt/offlineIMAP password wizard" --inputbox "Insert the email address with which you originally created your GPG key pair. This is NOT necessarily the email you want to configure." 10 60 3>&1 1>&2 2>&3 3>&- )  	dialog --title "Luke's mutt/offlineIMAP password wizard" --passwordbox "Enter the new password for the \"$1\" account." 10 60 2> /tmp/$1 @@ -36,21 +45,32 @@ formatShortcut() { \  	echo "macro index,pager g$1 \"<change-folder>$data<enter>\" \"Go to $2.\"" >> "$muttdir"accounts/$3.muttrc  	done ;} +gen_delim() { \ +	delim="=" +	for i in `seq $(( $1 - 1 ))` +	do +		delim="$delim-" +	done +	echo $delim ;} +  detectMailboxes() { \  	find ~/.mail/$1 -maxdepth 1 -mindepth 1 -type d | sed -e "s/.*\///g;s/^/=/g" > /tmp/$1_boxes -	oneline=$(cat /tmp/$1_boxes | tr "\n" " ") +	sidebar_width=$(sed -n -e '/^set sidebar_width/p' "$muttdir"/muttrc | awk -F'=' '{print $2}') +	delim=$(gen_delim $sidebar_width) +	oneline=$(cat /tmp/$1_boxes | sed -e "s/^\|$/\"/g" | tr "\n" " ") +	oneline="=$1 $delim $oneline"  	sed -i "/^mailboxes\|^set spoolfile\|^set record\|^set postponed/d" "$muttdir"accounts/$1.muttrc  	echo mailboxes $oneline >> "$muttdir"accounts/$1.muttrc  	sed -i "/^macro index,pager g/d" "$muttdir"accounts/$1.muttrc  	grep -vi /tmp/$1_boxes -e "trash\|drafts\|sent\|trash\|spam\|junk\|archive\|chat\|old\|new\|gmail\|sms\|call" | sort -n | sed 1q | formatShortcut i inbox $1 -	grep -i /tmp/$1_boxes -e sent | formatShortcut s sent $1 -	grep -i /tmp/$1_boxes -e draft | formatShortcut d drafts $1 -	grep -i /tmp/$1_boxes -e trash | formatShortcut t trash $1 -	grep -i /tmp/$1_boxes -e spam | formatShortcut S spam $1 -	grep -i /tmp/$1_boxes -e archive | formatShortcut a archive $1 +	grep -i /tmp/$1_boxes -e sent | sed 1q | formatShortcut s sent $1 +	grep -i /tmp/$1_boxes -e draft | sed 1q | formatShortcut d drafts $1 +	grep -i /tmp/$1_boxes -e trash | sed 1q | formatShortcut t trash $1 +	grep -i /tmp/$1_boxes -e spam | sed 1q | formatShortcut S spam $1 +	grep -i /tmp/$1_boxes -e archive | sed 1q | formatShortcut a archive $1  	spoolfile=$(grep -vi /tmp/$1_boxes -e "trash\|drafts\|sent\|trash\|spam\|junk\|archive\|chat\|old\|new\|gmail\|sms\|call" | sort -n | sed 1q | sed -e 's/=/+/g') -	record=$(grep -i /tmp/$1_boxes -e sent | sed -e 's/=/+/g') -	postponed=$(grep -i /tmp/$1_boxes -e draft | sed -e 's/=/+/g') +	record=$(grep -i /tmp/$1_boxes -e sent | sed -e 's/=/+/g' | sed 1q) +	postponed=$(grep -i /tmp/$1_boxes -e draft | sed -e 's/=/+/g' | sed 1q)  	echo "set spoolfile = \"$spoolfile\"" >> "$muttdir"accounts/$1.muttrc  	echo "set record = \"$record\"" >> "$muttdir"accounts/$1.muttrc  	echo "set postponed = \"$postponed\"" >> "$muttdir"accounts/$1.muttrc ;} @@ -149,6 +169,9 @@ addAccount() {  	shred -u /tmp/$title  	mv /tmp/$title.gpg ~/.config/mutt/credentials/ +	# Adding directory structure for cache. +	mkdir -p "$muttdir"accounts/$title/cache/bodies +  	# Creating the offlineimaprc if it doesn't exist already.  	if [ ! -f ~/.offlineimaprc ]; then cp "$muttdir"autoconf/offlineimap_header ~/.offlineimaprc; fi  	cat "$muttdir"autoconf/offlineimap_profile | sed -e "$replacement" >> ~/.offlineimaprc @@ -159,9 +182,6 @@ addAccount() {  	# Add a numbered shortcut in the muttrc  	echo "macro index,pager i$idnum '<sync-mailbox><enter-command>source "$muttdir"accounts/$title.muttrc<enter><change-folder>!<enter>'" >> "$muttdir"personal.muttrc -	# Adding directory structure for cache. -	mkdir -p "$muttdir"accounts/$title/cache/bodies -  	# Add to offlineimaprc sync list.  	sed -i "s/^accounts =.*[a-zA-Z]$/&, $title/g;s/^accounts =$/accounts = $title/g" ~/.offlineimaprc @@ -195,14 +215,15 @@ wipe () { rm $HOME/.offlineimaprc  while : ;  	do  choice=$(dialog --title "Luke's mutt/offlineIMAP wizard" --nocancel \ -	--menu "What would you like to do?" 14 45 7 \ +	--menu "What would you like to do?" 16 45 8 \  	0 "List all email accounts configured." \  	1 "Add an email account." \  	2 "Auto-detect mailboxes for an account." \ -	3 "Change an account's password." \ -	4 "Remove an email account." \ -	5 "Remove all email accounts." \ -	6 "Exit this wizard." \ +	3 "Enable/disable autosync." \ +	4 "Change an account's password." \ +	5 "Remove an email account." \ +	6 "Remove all email accounts." \ +	7 "Exit this wizard." \  	 3>&1 1>&2 2>&3 3>&1 )  case $choice in @@ -211,9 +232,10 @@ $(grep ~/.offlineimaprc -e "^accounts =" | sed 's/accounts =//g')  " 6 60;;  1) chooseAdd;;  2) detectWarning && chooseDetect ;; -3) inventory && for i in $userchoices; do changePassword $i ; done;; -4) inventory && for i in $userchoices; do removeAccount $i ; done;; -5) (dialog --defaultno --title "Wipe all custom neomutt/offlineIMAP settings?" --yesno "Would you like to wipe all of the mutt/offlineIMAP settings generated by the system?" 6 60 && wipe) ;; -6) clear && break ;; +3) chooseSync;; +4) inventory && for i in $userchoices; do changePassword $i ; done;; +5) inventory && for i in $userchoices; do removeAccount $i ; done;; +6) (dialog --defaultno --title "Wipe all custom neomutt/offlineIMAP settings?" --yesno "Would you like to wipe all of the mutt/offlineIMAP settings generated by the system?" 6 60 && wipe) ;; +7) clear && break ;;  esac  done @@ -4,7 +4,6 @@ bind index,pager i noop  bind index,pager g noop  bind index \Cf noop  source etc/muttcol -source personal.muttrc  source etc/aliases  set sleep_time = 0  set sort = 'reverse-date' @@ -14,9 +13,12 @@ set timeout = "5"  set mail_check = "10"  set mailcap_path = ~/.config/mutt/etc/mailcap  set date_format="%m/%d %I:%M" -set index_format="%2C %Z %D %-15.15F %s (%-4.4c)" +set index_format="%2C %?X?A& ? %D %-15.15F %s (%-4.4c)" +#set index_format="%2C %Z %?X?A& ? %D %-15.15F %s (%-4.4c)" +set forward_format = "Fwd: %s"  set markers = no  set mark_old = no +set mime_forward = yes  auto_view text/html  auto_view application/pdf  alternative_order text/plain text/enriched text/html @@ -25,6 +27,12 @@ alternative_order text/plain text/enriched text/html  bind editor <space> noop  bind index G last-entry  bind index gg first-entry +bind pager j next-line +bind pager k previous-line +bind attach,index,pager \CD next-page +bind attach,index,pager \CU previous-page +bind pager gg top +bind pager G bottom  bind index d half-down  bind index u half-up  bind index D delete-message @@ -44,7 +52,7 @@ 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' +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 @@ -53,3 +61,5 @@ bind index,pager <F4> sidebar-page-down  bind index,pager \Cp sidebar-prev-new  bind index,pager \Cn sidebar-next-new  bind index,pager B sidebar-toggle-visible + +source personal.muttrc diff --git a/personal.muttrc b/personal.muttrc deleted file mode 100644 index 67da34b..0000000 --- a/personal.muttrc +++ /dev/null @@ -1,8 +0,0 @@ -# vim: filetype=muttrc - -# This file is where the wizard will output -# information on which file to treat as default -# and shortcut bindings for jumping from account to account. - -# You can edit this manually if you know what you're doing. - | 
