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.opus Binary files differnew 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. - |