aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Doom/.config/doom/init.el1
-rw-r--r--Doom/.config/doom/modules/private/mail/autoload.el19
-rw-r--r--Doom/.config/doom/modules/private/mail/config.el33
-rw-r--r--Doom/.config/doom/modules/private/mail/packages.el4
4 files changed, 57 insertions, 0 deletions
diff --git a/Doom/.config/doom/init.el b/Doom/.config/doom/init.el
index 036b8eb..9e4e22e 100644
--- a/Doom/.config/doom/init.el
+++ b/Doom/.config/doom/init.el
@@ -183,6 +183,7 @@
;;bindings
gentemplate
narrow
+ mail
;;completion
;; (ocaml +lsp)
;; (rss +elfeed)
diff --git a/Doom/.config/doom/modules/private/mail/autoload.el b/Doom/.config/doom/modules/private/mail/autoload.el
new file mode 100644
index 0000000..13a79f9
--- /dev/null
+++ b/Doom/.config/doom/modules/private/mail/autoload.el
@@ -0,0 +1,19 @@
+;;; private/mail/autoload.el -*- lexical-binding: t; -*-
+
+;;;###autoload
+(defun +mail/open-mail ()
+ "Activate (or switch to) `notmuch' in its workspace."
+ (interactive)
+ (unless (featurep! :ui workspaces)
+ (user-error ":ui workspaces is required, but disabled"))
+ (condition-case-unless-debug e
+ (progn
+ (+workspace-switch "*MAIL*" t)
+ (if-let* ((buf (cl-find-if (lambda (it) (string-match-p "^\\*notmuch" (buffer-name (window-buffer it))))
+ (doom-visible-windows))))
+ (select-window (get-buffer-window buf))
+ (notmuch-search "tag:inbox"))
+ (+workspace/display))
+ ('error
+ (+notmuch/quit)
+ (signal (car e) (cdr e)))))
diff --git a/Doom/.config/doom/modules/private/mail/config.el b/Doom/.config/doom/modules/private/mail/config.el
new file mode 100644
index 0000000..25c9102
--- /dev/null
+++ b/Doom/.config/doom/modules/private/mail/config.el
@@ -0,0 +1,33 @@
+;;; private/mail/config.el -*- lexical-binding: t; -*-
+(defconst +mail/signature
+ "---------------
+Aryadev Chavali")
+
+(use-package notmuch
+ :commands notmuch
+ :config
+ (setq notmuch-show-logo nil
+ message-signature +mail/signature
+ mail-signature +mail/signature)
+
+ (defun +mail/sync-mail()
+ (interactive)
+ (start-process "imap-call" "*offlineimap*" "offlineimap" '("-oq")))
+
+ (map!
+ (:leader
+ "om" #'+mail/open-mail)
+ :map (notmuch-hello-mode-map notmuch-tree-mode-map notmuch-show-mode-map)
+ "u" #'notmuch-poll-and-refresh-this-buffer
+ "gS" #'+mail/sync-mail))
+
+(use-package smtpmail
+ :commands mail-send
+ :after notmuch
+ :init
+ (setq smtpmail-smtp-server "mail.aryadevchavali.com"
+ send-mail-function 'smtpmail-send-it
+ message-send-mail-function 'smtpmail-send-it
+ smtpmail-smtp-user "aryadev"
+ smtpmail-smtp-service 587
+ smtpmail-stream-type 'starttls))
diff --git a/Doom/.config/doom/modules/private/mail/packages.el b/Doom/.config/doom/modules/private/mail/packages.el
new file mode 100644
index 0000000..e084e30
--- /dev/null
+++ b/Doom/.config/doom/modules/private/mail/packages.el
@@ -0,0 +1,4 @@
+;; -*- no-byte-compile: t; -*-
+;;; private/mail/packages.el
+
+(package! notmuch)