1 ;;; packages.el --- mu4e Layer packages File for Spacemacs
3 ;; Copyright (c) 2012-2014 Sylvain Benner
4 ;; Copyright (c) 2014-2015 Sylvain Benner & Contributors
5 ;; Copyright (c) 2015 Amin Bandali
7 ;; Authors: Amin Bandali <me@aminb.org>
8 ;; Sylvain Benner <sylvain.benner@gmail.com>
9 ;; URL: https://github.com/aminb/dotfiles
11 ;; This file is not part of GNU Emacs; nor that of spacemacs.
17 ;; mu4e is not in any repos, so it's commented
21 "List of all packages to install and/or initialize. Built-in packages
22 which require an initialization must be listed explicitly in the list.")
24 (defvar mu4e-excluded-packages
'()
25 "List of packages to exclude.")
27 (defun get-string-from-file (filePath)
28 "Return filePath's file content."
30 (insert-file-contents filePath
)
32 ;; thanks to “Pascal J Bourguignon” and “TheFlyingDutchman
33 ;; 〔zzbba…@aol.com〕”. 2010-09-02
35 (defun get-passwd-file (name)
36 "Return name's passwd file content"
37 (get-string-from-file (concat "/home/amin/.passwd/" name
)))
42 mu4e-get-mail-command
"offlineimap" ;; or fetchmail, or ...
43 mu4e-update-interval
300 ;; update every 5 minutes
44 mu4e-sent-folder
"/aminb/Sent"
45 mu4e-drafts-folder
"/aminb/Drafts"
46 mu4e-trash-folder
"/aminb/Trash"
47 user-mail-address
(get-passwd-file "aminb-mail")
48 mu4e-compose-signature
52 smtpmail-default-smtp-server
"mail.aminb.org"
53 smtpmail-local-domain
"aminb.org"
54 smtpmail-smtp-server
"mail.aminb.org"
55 smtpmail-stream-type
'ssl
56 smtpmail-smtp-service
465)
58 (defvar my-mu4e-account-alist
60 (mu4e-sent-folder "/aminb/Sent")
61 (mu4e-drafts-folder "/aminb/Drafts")
62 (mu4e-trash-folder "/aminb/Trash")
63 (user-mail-address (get-passwd-file "aminb-mail"))
64 (user-full-name "Amin Bandali")
65 (smtpmail-default-smtp-server "mail.aminb.org")
66 (smtpmail-local-domain "aminb.org")
67 (smtpmail-smtp-user (get-passwd-file "aminb-user"))
68 (smtpmail-smtp-server "mail.aminb.org")
69 (smtpmail-stream-type ssl
)
70 (smtpmail-smtp-service 465))
72 (mu4e-sent-folder "/Gmail/[Gmail].Sent Mail")
73 (mu4e-drafts-folder "/Gmail/[Gmail].Drafts")
74 (mu4e-trash-folder "/Gmail/[Gmail].Trash")
75 (user-mail-address (get-passwd-file "gmail-mail"))
76 (user-full-name "Amin Bandali")
77 (smtpmail-default-smtp-server "smtp.gmail.com")
78 (smtpmail-local-domain "gmail.com")
79 (smtpmail-smtp-user (get-passwd-file "gmail-mail"))
80 (smtpmail-smtp-server "smtp.gmail.com")
81 (smtpmail-stream-type ssl
)
82 (smtpmail-smtp-service 465))))
84 (defun my-mu4e-set-account ()
85 "Set the account for composing a message."
87 (if mu4e-compose-parent-message
88 (let ((maildir (mu4e-message-field mu4e-compose-parent-message
:maildir
)))
89 (string-match "/\\(.*?\\)/" maildir
)
90 (match-string 1 maildir
))
91 (completing-read (format "Compose with account: (%s) "
92 (mapconcat #'(lambda (var) (car var
))
93 my-mu4e-account-alist
"/"))
94 (mapcar #'(lambda (var) (car var
)) my-mu4e-account-alist
)
95 nil t nil nil
(caar my-mu4e-account-alist
))))
96 (account-vars (cdr (assoc account my-mu4e-account-alist
))))
99 (set (car var
) (cadr var
)))
101 (error "No email account found"))))
103 (add-hook 'mu4e-compose-pre-hook
'my-mu4e-set-account
)
106 ;; Shortcut for mu4e.
107 (global-set-key (kbd "C-c m") 'mu4e
)
108 (evil-leader/set-key
"am" 'mu4e
)
111 ;; A special version of the gnus-dired-mail-buffers function
112 ;; that understands mu4e buffers as well
113 (require 'gnus-dired
)
114 ;; make the `gnus-dired-mail-buffers' function also work on
115 ;; message-mode derived modes, such as mu4e-compose-mode
116 (defun gnus-dired-mail-buffers ()
117 "Return a list of active message buffers."
120 (dolist (buffer (buffer-list t
))
122 (when (and (derived-mode-p 'message-mode
)
123 (null message-sent-message-via
))
124 (push (buffer-name buffer
) buffers
))))
127 (setq gnus-dired-mail-mode
'mu4e-user-agent
)
128 (add-hook 'dired-mode-hook
'turn-on-gnus-dired-mode
)
130 (require 'mu4e-contrib
)
131 (setq mu4e-html2text-command
'mu4e-shr2text
132 mu4e-view-html-plaintext-ratio-heuristic
10
133 mu4e-view-prefer-html t
)
135 ;; For each package, define a function mu4e/init-<package-mu4e>
137 ;; (defun mu4e/init-my-package ()
138 ;; "Initialize my package"
141 ;; Often the body of an initialize function uses `use-package'
142 ;; For more info on `use-package', see readme:
143 ;; https://github.com/jwiegley/use-package