Add mail config - mutt & mbsync
This commit is contained in:
parent
567d1f7108
commit
362035681b
16 changed files with 330 additions and 3 deletions
|
@ -3,6 +3,7 @@
|
||||||
```
|
```
|
||||||
git > global git config & aliases
|
git > global git config & aliases
|
||||||
lftp > sftp management
|
lftp > sftp management
|
||||||
|
mail > mail config - mutt/mbsync
|
||||||
mpd > music player daemon config
|
mpd > music player daemon config
|
||||||
ncmpcpp > ncurses mpc++ ui/colour settings & playlists
|
ncmpcpp > ncurses mpc++ ui/colour settings & playlists
|
||||||
npm > npm configuration (ha ha)
|
npm > npm configuration (ha ha)
|
||||||
|
@ -16,7 +17,7 @@ weechat > irc client ui/colour configuration
|
||||||
zsh > shell, aliases and cool stuff
|
zsh > shell, aliases and cool stuff
|
||||||
```
|
```
|
||||||
|
|
||||||
`git clone git@github.com:grawlinson/dotfiles.git ~/.dotfiles`
|
`git clone https://github.com/grawlinson/dotfiles.git ~/.dotfiles`
|
||||||
|
|
||||||
Clone repository, then setup as desired.
|
Clone repository, then setup as desired.
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
* ownCloud client
|
* ownCloud client
|
||||||
* KeepassX2
|
* KeepassX2
|
||||||
* PulseAudio+pavucontrol
|
* PulseAudio+pavucontrol
|
||||||
* Fonts (infinality-bundle ibfonts-meta-extended)
|
* Fonts (ttf-dejavu, noto-fonts, powerline-fonts)
|
||||||
* LaTeX (texlive-most)
|
* LaTeX (texlive-most)
|
||||||
|
|
||||||
## Browsers
|
## Browsers
|
||||||
|
@ -43,6 +43,7 @@
|
||||||
|
|
||||||
## Terminal
|
## Terminal
|
||||||
|
|
||||||
|
* termite
|
||||||
* weechat
|
* weechat
|
||||||
* zsh
|
* zsh
|
||||||
* screenfetch+scrot
|
* screenfetch+scrot
|
||||||
|
@ -51,5 +52,8 @@
|
||||||
* lftp
|
* lftp
|
||||||
* nvim
|
* nvim
|
||||||
* unzip
|
* unzip
|
||||||
* rxvt-unicode
|
|
||||||
* tmux
|
* tmux
|
||||||
|
* ncdu
|
||||||
|
* (neo)mutt
|
||||||
|
* notmuch
|
||||||
|
* isync (aka mbsync)
|
||||||
|
|
19
mail/.config/mutt/accounts/gmail
Normal file
19
mail/.config/mutt/accounts/gmail
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
# clear previously defined mailboxes
|
||||||
|
#unmailboxes *
|
||||||
|
|
||||||
|
set mbox = "+gmail/Archive"
|
||||||
|
set postponed = "+gmail/Drafts"
|
||||||
|
set trash = "+gmail/Trash"
|
||||||
|
unset record # gmail automatically records outgoing emails
|
||||||
|
|
||||||
|
set realname = "George Rawlinson"
|
||||||
|
set from = "george@rawlinson.net.nz"
|
||||||
|
|
||||||
|
# smtp settings
|
||||||
|
set smtp_pass= `pass mail/george@rawlinson.net.nz`
|
||||||
|
set smtp_url=smtp://$from@smtp.gmail.com:587
|
||||||
|
|
||||||
|
# gmail specific macros
|
||||||
|
macro index A "<save-message>+gmail/Archive<enter>" "move message to the archive"
|
||||||
|
macro index S "<save-message>+gmail/Spam<enter>" "mark message as spam"
|
||||||
|
macro index D "<save-message>+gmail/Trash<enter>" "move message to the trash"
|
19
mail/.config/mutt/accounts/nullpointer
Normal file
19
mail/.config/mutt/accounts/nullpointer
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
# clear previously defined mailboxes
|
||||||
|
#unmailboxes *
|
||||||
|
|
||||||
|
set mbox = "+nullpointer/Archive"
|
||||||
|
set postponed = "+nullpointer/Drafts"
|
||||||
|
set trash = "+nullpointer/Trash"
|
||||||
|
set record = $XDG_DATA_HOME/mutt/record/sent
|
||||||
|
|
||||||
|
set realname = "George Rawlinson"
|
||||||
|
set from = "george@nullpointer.io"
|
||||||
|
|
||||||
|
# smtp settings
|
||||||
|
set smtp_pass = `pass mail/george@nullpointer.io`
|
||||||
|
set smtp_url=smtp://$from@mail.gandi.net:587
|
||||||
|
|
||||||
|
# nullpointer specific macros
|
||||||
|
macro index A "<save-message>+nullpointer/Archive<enter>" "move message to the archive"
|
||||||
|
macro index S "<save-message>+nullpointer/Spam<enter>" "mark message as spam"
|
||||||
|
macro index D "<save-message>+nullpointer/Trash<enter>" "move message to the trash"
|
9
mail/.config/mutt/bindings
Normal file
9
mail/.config/mutt/bindings
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
# sidebar
|
||||||
|
bind index,pager \Ck sidebar-prev # select previous folder
|
||||||
|
bind index,pager \Cj sidebar-next # select next folder
|
||||||
|
bind index,pager \Co sidebar-open # open selected folder
|
||||||
|
bind index,pager B sidebar-toggle-visible # toggle sidebar
|
||||||
|
|
||||||
|
# message - todo
|
||||||
|
#bind index,pager k previous-line
|
||||||
|
#bind index,pager j next-line
|
38
mail/.config/mutt/colours
Normal file
38
mail/.config/mutt/colours
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
# sidebar colours
|
||||||
|
color sidebar_new blue black # mailboxes containing new mail
|
||||||
|
color sidebar_highlight black green # cursor to select mailbox
|
||||||
|
color sidebar_indicator black blue # current open mailbox
|
||||||
|
color sidebar_divider blue black # divider between sidebar/index
|
||||||
|
|
||||||
|
# general ui
|
||||||
|
color status blue black # colour for status line
|
||||||
|
color indicator black blue # currently selected message
|
||||||
|
color tree cyan default # arrow in threads
|
||||||
|
|
||||||
|
# mail colours
|
||||||
|
color index magenta black ~N # new messages
|
||||||
|
color index yellow black ~O # old messages
|
||||||
|
color index red black ~D # to-be-deleted
|
||||||
|
color index yellow black ~P # self-mail
|
||||||
|
|
||||||
|
# index
|
||||||
|
color index_flags red black '~N' # new messages
|
||||||
|
color index_flags red black '~O' # old messages
|
||||||
|
color index_flags yellow black '~P' # self-mail
|
||||||
|
color index_flags blue black '~Q' # messages replied to
|
||||||
|
color index_author default black '.*' # author colour
|
||||||
|
color index_date green default # date colour
|
||||||
|
color index_label default brightgreen # ???
|
||||||
|
|
||||||
|
# quoting depths
|
||||||
|
color quoted green default
|
||||||
|
color quoted1 green default
|
||||||
|
color quoted2 blue default
|
||||||
|
color quoted3 blue default
|
||||||
|
|
||||||
|
# urls
|
||||||
|
color body yellow black "(https|http|ftp|news|telnet|finger)://[^ \"\t\r\n]*"
|
||||||
|
|
||||||
|
# email addresses
|
||||||
|
color body yellow black [\-\.+_a-zA-Z0-9]+@[\-\.a-zA-Z0-9]+
|
||||||
|
color body yellow black "mailto:[-a-z_0-9.]+@[-a-z_0-9.]+"
|
5
mail/.config/mutt/hooks
Normal file
5
mail/.config/mutt/hooks
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
# folder hooks for different accounts
|
||||||
|
folder-hook gmail/* source ~/.config/mutt/accounts/gmail
|
||||||
|
folder-hook nullpointer/* source ~/.config/mutt/accounts/nullpointer
|
||||||
|
|
||||||
|
source ~/.config/mutt/accounts/gmail # default account
|
35
mail/.config/mutt/layout
Normal file
35
mail/.config/mutt/layout
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
# sidebar
|
||||||
|
set sidebar_visible # show sidebar
|
||||||
|
set sidebar_divider_char = "│" # divider between sidebar + index
|
||||||
|
set sidebar_width = 22 # sidebar width
|
||||||
|
set sidebar_format = "%B%?F? [%F]?%* %?N?%N?" # display folder name + unread count
|
||||||
|
|
||||||
|
# status bar
|
||||||
|
set status_chars = " *%A"
|
||||||
|
set status_format = "───[ Folder: %f ]───[%m messages%?n? (%n new)?%?d? (%d to delete)?%?t? (%t tagged)? ]───%>─%?p?( %p postponed )?───"
|
||||||
|
|
||||||
|
# email composition
|
||||||
|
ignore * # ignore all headers
|
||||||
|
unhdr_order *
|
||||||
|
unignore from: to: cc: date: subject: # show only from/to/cc/date/subject
|
||||||
|
hdr_order from: to: cc: date: subject:
|
||||||
|
|
||||||
|
# pager
|
||||||
|
set pager_context = 5 # lines of context in pager
|
||||||
|
set pager_index_lines = 10 # lines of mailbox shown in pager
|
||||||
|
set pager_stop # don't go to next message at bottom of pager
|
||||||
|
set smart_wrap # attempt to wrap messages in pager
|
||||||
|
set tilde # vim-like end of msg
|
||||||
|
unset markers # no line-wrap markers
|
||||||
|
alternative_order text/plain text/enriched text/html # display preference in order
|
||||||
|
|
||||||
|
# index
|
||||||
|
set date_format = "%y-%m-%d %H:%M" # YY-MM-DD HH:SS
|
||||||
|
set index_format = "[%Z] %D %-20.20F %s" # [message status flags] date author_name subject
|
||||||
|
set sort = threads # sort threaded mails
|
||||||
|
set strict_threads # don't define threads only by subject
|
||||||
|
set sort_aux = reverse-last-date-received # most recent mails at top
|
||||||
|
set sort_browser = reverse-date # ?
|
||||||
|
set uncollapse_jump # don't collapse on an unread message
|
||||||
|
#set sort_re # thread based on regex
|
||||||
|
#set reply_regexp = "^(([Rr][Ee]?(\[[0-9]+\])?: *)?(\[[^]]+\] *)?)*"
|
1
mail/.config/mutt/macros
Normal file
1
mail/.config/mutt/macros
Normal file
|
@ -0,0 +1 @@
|
||||||
|
# todo - switch account macros + tag behaviour (A/S/T)
|
12
mail/.config/mutt/mailboxes
Normal file
12
mail/.config/mutt/mailboxes
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
mailboxes = +gmail/INBOX \
|
||||||
|
+gmail/Archive \
|
||||||
|
+gmail/Drafts \
|
||||||
|
+gmail/Sent \
|
||||||
|
+gmail/Spam \
|
||||||
|
+gmail/Trash \
|
||||||
|
+nullpointer/INBOX \
|
||||||
|
+nullpointer/Archive \
|
||||||
|
+nullpointer/Drafts \
|
||||||
|
+nullpointer/Sent \
|
||||||
|
+nullpointer/Spam \
|
||||||
|
+nullpointer/Trash
|
2
mail/.config/mutt/mailcap
Normal file
2
mail/.config/mutt/mailcap
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
# pdf documents
|
||||||
|
application/pdf; okular %s;
|
38
mail/.config/mutt/muttrc
Normal file
38
mail/.config/mutt/muttrc
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
# conform to XDG base directory specification
|
||||||
|
set header_cache = $XDG_CACHE_HOME/mutt/headers
|
||||||
|
set message_cachedir = $XDG_DATA_HOME/mutt/messages
|
||||||
|
set mailcap_path = $XDG_CONFIG_HOME/mutt/mailcap
|
||||||
|
set record = $XDG_DATA_HOME/mutt/record/sent
|
||||||
|
set tmpdir = $XDG_RUNTIME_DIR
|
||||||
|
set certificate_file = $XDG_DATA_HOME/mutt/certificates
|
||||||
|
# i like having a clean uncluttered $HOME, sue me
|
||||||
|
|
||||||
|
# general
|
||||||
|
set mail_check = 0 # mbsync used for mail synchronisation
|
||||||
|
set timeout = 5 # wait 5s for user input
|
||||||
|
set sleep_time = 0 # disable pausing
|
||||||
|
set beep_new # beep when new mail received
|
||||||
|
|
||||||
|
# mailbox
|
||||||
|
set mbox_type = Maildir # mailbox format
|
||||||
|
set folder = ~/.mail # mailbox storage directory
|
||||||
|
set spoolfile = "+gmail/INBOX" # default mailbox
|
||||||
|
|
||||||
|
# ssl configuration
|
||||||
|
set ssl_starttls # use STARTTLS if not set
|
||||||
|
set ssl_force_tls # force TLS negotation
|
||||||
|
|
||||||
|
# composing configuration
|
||||||
|
set editor = "nvim +/^$ +nohlsearch" # place cursor after headers + turn off search highlighting
|
||||||
|
set edit_headers # enable header editing when composing
|
||||||
|
set mime_forward = ask-no # ask if fwd msg as attachments
|
||||||
|
|
||||||
|
# grab rest of the config
|
||||||
|
source ~/.config/mutt/colours
|
||||||
|
source ~/.config/mutt/mailboxes
|
||||||
|
source ~/.config/mutt/layout
|
||||||
|
source ~/.config/mutt/bindings
|
||||||
|
source ~/.config/mutt/macros
|
||||||
|
source ~/.config/mutt/hooks
|
||||||
|
|
||||||
|
#set read_only # set read-only when messing around with settings
|
9
mail/.config/systemd/user/mbsync@.service
Normal file
9
mail/.config/systemd/user/mbsync@.service
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
[Unit]
|
||||||
|
Description=Mailbox synchronization service for user %I
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=oneshot
|
||||||
|
ExecStart=/usr/bin/mbsync -Va
|
||||||
|
User=%i
|
||||||
|
StandardOutput=syslog
|
||||||
|
StandardError=syslog
|
10
mail/.config/systemd/user/mbsync@.timer
Normal file
10
mail/.config/systemd/user/mbsync@.timer
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
[Unit]
|
||||||
|
Description=Mailbox synchronization timer
|
||||||
|
|
||||||
|
[Timer]
|
||||||
|
OnBootSec=5min
|
||||||
|
OnUnitActiveSec=5min
|
||||||
|
Unit=mbsync@%i.service
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=timers.target
|
123
mail/.mbsyncrc
Normal file
123
mail/.mbsyncrc
Normal file
|
@ -0,0 +1,123 @@
|
||||||
|
# global config - applied to all channels
|
||||||
|
Create Both
|
||||||
|
Expunge Both
|
||||||
|
SyncState *
|
||||||
|
|
||||||
|
# gmail
|
||||||
|
IMAPAccount gmail
|
||||||
|
Host imap.gmail.com
|
||||||
|
User george@rawlinson.net.nz
|
||||||
|
PassCmd "pass mail/george@rawlinson.net.nz" # get password from pass
|
||||||
|
AuthMechs LOGIN
|
||||||
|
SSLType IMAPS
|
||||||
|
CertificateFile /etc/ssl/certs/ca-certificates.crt
|
||||||
|
|
||||||
|
# remote storage
|
||||||
|
IMAPStore gmail-remote
|
||||||
|
Account gmail
|
||||||
|
|
||||||
|
# local storage
|
||||||
|
MaildirStore gmail-local
|
||||||
|
Path ~/.mail/gmail/ # must append slash to specify directory
|
||||||
|
Inbox ~/.mail/gmail/INBOX # place inbox inside mail dir
|
||||||
|
|
||||||
|
# folders
|
||||||
|
Channel gmail-inbox
|
||||||
|
Master :gmail-remote:INBOX
|
||||||
|
Slave :gmail-local:INBOX
|
||||||
|
|
||||||
|
Channel gmail-archive
|
||||||
|
Master :gmail-remote:"[Gmail]/All Mail"
|
||||||
|
Slave :gmail-local:Archive
|
||||||
|
|
||||||
|
Channel gmail-drafts
|
||||||
|
Master :gmail-remote:"[Gmail]/Drafts"
|
||||||
|
Slave :gmail-local:Drafts
|
||||||
|
|
||||||
|
Channel gmail-sent
|
||||||
|
Master :gmail-remote:"[Gmail]/Sent Mail"
|
||||||
|
Slave :gmail-local:Sent
|
||||||
|
|
||||||
|
Channel gmail-spam
|
||||||
|
Master :gmail-remote:"[Gmail]/Spam"
|
||||||
|
Slave :gmail-local:Spam
|
||||||
|
|
||||||
|
Channel gmail-trash
|
||||||
|
Master :gmail-remote:"[Gmail]/Bin"
|
||||||
|
Slave :gmail-local:Trash
|
||||||
|
|
||||||
|
# all folders except above
|
||||||
|
Channel gmail-folders
|
||||||
|
Master :gmail-remote:
|
||||||
|
Slave :gmail-local:
|
||||||
|
Patterns * ![Gmail]* !INBOX !Archive !Drafts !Sent !Spam !Trash
|
||||||
|
|
||||||
|
# group all channels, so they can be sync'd with one command `mbsync gmail`
|
||||||
|
Group gmail
|
||||||
|
Channel gmail-trash
|
||||||
|
Channel gmail-inbox
|
||||||
|
Channel gmail-archive
|
||||||
|
Channel gmail-drafts
|
||||||
|
Channel gmail-sent
|
||||||
|
Channel gmail-spam
|
||||||
|
Channel gmail-folders
|
||||||
|
|
||||||
|
# nullpointer
|
||||||
|
IMAPAccount nullpointer
|
||||||
|
Host mail.gandi.net
|
||||||
|
User george@nullpointer.io
|
||||||
|
PassCmd "pass mail/george@nullpointer.io" # get password from pass
|
||||||
|
AuthMechs LOGIN
|
||||||
|
SSLType IMAPS
|
||||||
|
CertificateFile /etc/ssl/certs/ca-certificates.crt
|
||||||
|
|
||||||
|
# remote storage
|
||||||
|
IMAPStore nullpointer-remote
|
||||||
|
Account nullpointer
|
||||||
|
|
||||||
|
# local storage
|
||||||
|
MaildirStore nullpointer-local
|
||||||
|
Path ~/.mail/nullpointer/ # must append slash to specify directory
|
||||||
|
Inbox ~/.mail/nullpointer/INBOX # place inbox inside mail dir
|
||||||
|
|
||||||
|
# folders
|
||||||
|
Channel nullpointer-inbox
|
||||||
|
Master :nullpointer-remote:INBOX
|
||||||
|
Slave :nullpointer-local:INBOX
|
||||||
|
|
||||||
|
Channel nullpointer-archive
|
||||||
|
Master :nullpointer-remote:Archive
|
||||||
|
Slave :nullpointer-local:Archive
|
||||||
|
|
||||||
|
Channel nullpointer-drafts
|
||||||
|
Master :nullpointer-remote:Drafts
|
||||||
|
Slave :nullpointer-local:Drafts
|
||||||
|
|
||||||
|
Channel nullpointer-sent
|
||||||
|
Master :nullpointer-remote:Sent
|
||||||
|
Slave :nullpointer-local:Sent
|
||||||
|
|
||||||
|
Channel nullpointer-spam
|
||||||
|
Master :nullpointer-remote:Spam
|
||||||
|
Slave :nullpointer-local:Spam
|
||||||
|
|
||||||
|
Channel nullpointer-trash
|
||||||
|
Master :nullpointer-remote:Trash
|
||||||
|
Slave :nullpointer-local:Trash
|
||||||
|
|
||||||
|
# all folders except above
|
||||||
|
Channel nullpointer-folders
|
||||||
|
Master :nullpointer-remote:
|
||||||
|
Slave :nullpointer-local:
|
||||||
|
Patterns * !INBOX !Archive !Drafts !Sent !Spam !Trash
|
||||||
|
|
||||||
|
# group all channels, so they can be sync'd with one command `mbsync nullpointer`
|
||||||
|
Group nullpointer
|
||||||
|
Channel nullpointer-trash
|
||||||
|
Channel nullpointer-inbox
|
||||||
|
Channel nullpointer-archive
|
||||||
|
Channel nullpointer-drafts
|
||||||
|
Channel nullpointer-sent
|
||||||
|
Channel nullpointer-spam
|
||||||
|
Channel nullpointer-folders
|
||||||
|
|
2
zsh/.oh-my-zsh/custom/mutt.zsh
Normal file
2
zsh/.oh-my-zsh/custom/mutt.zsh
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
# conform to XDG base directory specification
|
||||||
|
alias mutt='mutt -F ~/.config/mutt/muttrc'
|
Loading…
Reference in a new issue