summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md16
-rw-r--r--autoconf/domains.csv4
-rw-r--r--autoconf/mutt_profile2
-rw-r--r--autoconf/offlineimap_profile2
-rwxr-xr-xetc/mailsync.sh23
-rw-r--r--etc/muttcol113
-rw-r--r--etc/notify.opusbin0 -> 28900 bytes
-rwxr-xr-xmutt-wizard.sh62
-rw-r--r--muttrc16
-rw-r--r--personal.muttrc8
10 files changed, 163 insertions, 83 deletions
diff --git a/README.md b/README.md
index 3d268c0..352437b 100644
--- a/README.md
+++ b/README.md
@@ -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.opus
new file mode 100644
index 0000000..a76ce32
--- /dev/null
+++ b/etc/notify.opus
Binary files differ
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
diff --git a/muttrc b/muttrc
index f34dd1d..041198f 100644
--- a/muttrc
+++ b/muttrc
@@ -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.
-