Adding support for mu4e, mu, & mbsync
This commit is contained in:
parent
5cb619ab09
commit
5d85602d49
4
.gitignore
vendored
4
.gitignore
vendored
|
@ -17,4 +17,6 @@ vim/autoload/*
|
||||||
vim/spell/*.spl
|
vim/spell/*.spl
|
||||||
vim/plugged
|
vim/plugged
|
||||||
vim/.netrwhist
|
vim/.netrwhist
|
||||||
zsh/transient/*
|
|
||||||
|
# Ignore anything that is transient
|
||||||
|
*/transient/*
|
||||||
|
|
|
@ -24,8 +24,72 @@
|
||||||
;; org-journal-file-format
|
;; org-journal-file-format
|
||||||
(customize-set-variable 'org-journal-date-format "%A, %d %B %Y")
|
(customize-set-variable 'org-journal-date-format "%A, %d %B %Y")
|
||||||
|
|
||||||
|
(setq doom-localleader-key ",")
|
||||||
|
|
||||||
;; Have projectile automatically check code.
|
;; Have projectile automatically check code.
|
||||||
(setq projectile-project-search-path '("~/src/" "~/Code/"))
|
(setq projectile-project-search-path '("~/src/" "~/Code/"))
|
||||||
|
|
||||||
(setq doom-localleader-key ",")
|
|
||||||
|
(set-email-account! "ProtonMail"
|
||||||
|
'((mu4e-sent-folder . "/Sent")
|
||||||
|
(mu4e-drafts-folder . "/Drafts")
|
||||||
|
(mu4e-trash-folder . "/Trash")
|
||||||
|
(mu4e-refile-folder . "/All Mail")
|
||||||
|
(mu4e-update-interval . 300)
|
||||||
|
(mu4e-change-filenames-when-moving . t)
|
||||||
|
(user-mail-address . "james@jpatrick.io")
|
||||||
|
(message-send-mail-function . 'smtpmail-send-it)
|
||||||
|
(smtpmail-auth-credentials . "~/.authinfo.gpg")
|
||||||
|
(smtpmail-smtp-service . 1025)
|
||||||
|
(smtpmail-smtp-server . "127.0.0.1")
|
||||||
|
(smtpmail-smtp-user . "james@jpatrick.io")
|
||||||
|
)
|
||||||
|
t)
|
||||||
|
(setq
|
||||||
|
message-send-mail-function 'smtpmail-send-it
|
||||||
|
smtpmail-auth-credentials "~/.authinfo.gpg"
|
||||||
|
smtpmail-smtp-server "127.0.0.1"
|
||||||
|
smtpmail-smtp-service 1025)
|
||||||
|
(add-to-list 'gnutls-trustfiles "~/.config/mbsync/transient/bridge.crt")
|
||||||
|
|
||||||
|
(defcustom mu4e-bookmarks
|
||||||
|
'(( :name "Unread messages"
|
||||||
|
:query "flag:unread AND NOT flag:trashed"
|
||||||
|
:key ?u)
|
||||||
|
( :name "Today's messages"
|
||||||
|
:query "date:today..now"
|
||||||
|
:key ?t)
|
||||||
|
( :name "Last 7 days"
|
||||||
|
:query "date:7d..now"
|
||||||
|
:hide-unread t
|
||||||
|
:key ?w)
|
||||||
|
( :name "Messages with images"
|
||||||
|
:query "mime:image/*"
|
||||||
|
:key ?p))
|
||||||
|
"List of pre-defined queries that are shown on the main screen.
|
||||||
|
|
||||||
|
Each of the list elements is a plist with at least:
|
||||||
|
:name - the name of the query
|
||||||
|
:query - the query expression
|
||||||
|
:key - the shortcut key.
|
||||||
|
|
||||||
|
Optionally, you add the following:
|
||||||
|
:hide - if t, bookmark is hdden from the main-view and speedbar.
|
||||||
|
:hide-unread - do not show the counts of unread/total number
|
||||||
|
of matches for the query. This can be useful if a bookmark uses
|
||||||
|
a very slow query. :hide-unread is implied from :hide.
|
||||||
|
"
|
||||||
|
:type '(repeat (plist))
|
||||||
|
:group 'mu4e)
|
||||||
|
|
||||||
|
|
||||||
|
(add-to-list 'mu4e-bookmarks
|
||||||
|
'( :name "Recent Account Msgs"
|
||||||
|
:query "maildir:/Folders/subscriptions date 7d..now AND flag:unread"
|
||||||
|
:key ?s)
|
||||||
|
)
|
||||||
|
(add-to-list 'mu4e-bookmarks
|
||||||
|
'( :name "Unread Personal"
|
||||||
|
:query "maildir:/INBOX date 7d..now AND flag:unread"
|
||||||
|
:key ?i)
|
||||||
|
)
|
||||||
|
|
|
@ -186,7 +186,7 @@
|
||||||
(web +lsp) ; the tubes
|
(web +lsp) ; the tubes
|
||||||
|
|
||||||
:email
|
:email
|
||||||
;;(mu4e +gmail)
|
mu4e
|
||||||
;;notmuch
|
;;notmuch
|
||||||
;;(wanderlust +gmail)
|
;;(wanderlust +gmail)
|
||||||
|
|
||||||
|
|
2
mbsync/authinfo.template
Normal file
2
mbsync/authinfo.template
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
machine 127.0.0.1 login james@jpatrick.io port 1143 password PASSWORD_PROVIDED_BY_BRIDGE
|
||||||
|
machine 127.0.0.1 login james@jpatrick.io port 1025 password PASSWORD_PROVIDED_BY_BRIDGE
|
2
mbsync/file
Normal file
2
mbsync/file
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
machine 127.0.0.1 login USERNAME_HERE@protonmail.com port 1143 password aaa
|
||||||
|
machine 127.0.0.1 login USERNAME_HERE@protonmail.com port 1025 password aaa
|
46
mbsync/makefile
Normal file
46
mbsync/makefile
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
# -*- mode: makefile-gmake; -*-
|
||||||
|
SRC := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
|
||||||
|
|
||||||
|
include ../lib/shared.mk
|
||||||
|
TARGET := $(XDG_DIR)/mbsync
|
||||||
|
RC_TARGET := ~/.mbsyncrc
|
||||||
|
TRANSIENT_DIR := $(SRC)/transient
|
||||||
|
|
||||||
|
|
||||||
|
install: | init update
|
||||||
|
|
||||||
|
init:
|
||||||
|
if (( $$+commands[mbsync] )) ; then
|
||||||
|
$(report) header "Setting up mbsync"
|
||||||
|
$(mk_link) $(SRC) $(TARGET)
|
||||||
|
$(mk_link) $(SRC)/mbsyncrc $(RC_TARGET)
|
||||||
|
$(MAKE) -C $(SRC) update_cert
|
||||||
|
[[ ! -e ~/.authinfo.gpg ]] \
|
||||||
|
&& $(report) "warn" "You need to setup the authinfo.gpg run \n > $(SRC)/mk_authinfo" \
|
||||||
|
|| $(report) "debug" "authinfo.gpg already installed"
|
||||||
|
else
|
||||||
|
$(report) debug "mbsync not installed. Skipping."
|
||||||
|
fi
|
||||||
|
|
||||||
|
update_cert:
|
||||||
|
if [[ ! -e $(TRANSIENT_DIR) ]] ; then
|
||||||
|
$(report) debug "$(TRANSIENT_DIR) didn't exist. Creating one."
|
||||||
|
mkdir $(TRANSIENT_DIR)
|
||||||
|
fi
|
||||||
|
echo "" \
|
||||||
|
| openssl s_client -starttls imap --connect 127.0.0.1:1143 -showcerts 2>/dev/null \
|
||||||
|
| sed -n -e '/BEGIN\ CERTIFICATE/,/END\ CERTIFICATE/ p' \
|
||||||
|
> $(TRANSIENT_DIR)/bridge.crt \
|
||||||
|
&& $(report) pass "Cert from proton bridge downloaded." \
|
||||||
|
|| $(report) error "Error while fetching cert. Is bridge running?"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
update:
|
||||||
|
|
||||||
|
remove:
|
||||||
|
$(report) header "Removing mbsync"
|
||||||
|
$(rm_link) $(TARGET)
|
||||||
|
rm -rf $(TRANSIENT_DIR) ; $(report) "Deleting $(TRANSIENT_DIR)"
|
||||||
|
$(rm_link) $(RC_TARGET)
|
||||||
|
rm ~/.authinfo.gpg ; $(report) "Deleting authinfo"
|
26
mbsync/mbsyncrc
Normal file
26
mbsync/mbsyncrc
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
# These settings can also go under an "Account" section, but then the
|
||||||
|
# "IMAPStore" section needs to reference the account. This is not
|
||||||
|
# needed for just one store per account.
|
||||||
|
IMAPStore mailbox-remote
|
||||||
|
Host 127.0.0.1
|
||||||
|
Port 1143
|
||||||
|
User james@jpatrick.io
|
||||||
|
PassCmd "gpg2 -q -d ~/.authinfo.gpg | awk 'FNR == 1 {print $8}'"
|
||||||
|
SSLType STARTTLS
|
||||||
|
CertificateFile ~/.config/mbsync/transient/bridge.crt
|
||||||
|
|
||||||
|
MaildirStore mailbox-local
|
||||||
|
Path ~/.mail/
|
||||||
|
Inbox ~/.mail/INBOX
|
||||||
|
SubFolders Verbatim
|
||||||
|
|
||||||
|
Channel mailbox
|
||||||
|
Master :mailbox-remote:
|
||||||
|
Slave :mailbox-local:
|
||||||
|
Patterns *
|
||||||
|
Create Slave
|
||||||
|
#Expunge Both
|
||||||
|
SyncState *
|
||||||
|
|
||||||
|
Group protonmail
|
||||||
|
Channel inbox
|
35
mbsync/mk_authinfo
Executable file
35
mbsync/mk_authinfo
Executable file
|
@ -0,0 +1,35 @@
|
||||||
|
#!/usr/bin/env zsh
|
||||||
|
|
||||||
|
|
||||||
|
function cleanup(){
|
||||||
|
if (( $+commands[shred] )) ; then
|
||||||
|
shred transient/authinfo*
|
||||||
|
elif (( $+commands[srm] )) ; then
|
||||||
|
srm transient/authinfo*
|
||||||
|
elif ; then
|
||||||
|
echo UNABLE TO FIND A WAY TO SECURELY DELETE THIS.
|
||||||
|
exit -1
|
||||||
|
fi
|
||||||
|
rm transient/authinfo*
|
||||||
|
}
|
||||||
|
|
||||||
|
trap cleanup EXIT
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
cd $(dirname $0)
|
||||||
|
if [[ ! -e ./transient ]] ; then
|
||||||
|
mkdir transient
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ ! -e ~/transient/authinfo ]] ; then
|
||||||
|
echo "Hello. I need the bridge password for this to work."
|
||||||
|
read _password\?"password: " asdaD
|
||||||
|
sed "s/PASSWORD_PROVIDED_BY_BRIDGE/${_password}/g" authinfo.template \
|
||||||
|
> transient/authinfo
|
||||||
|
unset _password
|
||||||
|
fi
|
||||||
|
|
||||||
|
gpg -e -r james@jpatrick.io transient/authinfo
|
||||||
|
mv transient/authinfo.gpg ~/.authinfo.gpg
|
||||||
|
|
Loading…
Reference in New Issue
Block a user