]> git.friedersdorff.com Git - max/dotfiles.git/blob - emacs/.emacs
a9e7eab1159ef143015d3f4050d67a77c34ffcc4
[max/dotfiles.git] / emacs / .emacs
1 (require 'package)
2 (add-to-list 'package-archives '("melpa" . "http://melpa.org/packages/"))
3 (package-initialize)
4 (custom-set-variables
5  ;; custom-set-variables was added by Custom.
6  ;; If you edit it by hand, you could mess it up, so be careful.
7  ;; Your init file should contain only one such instance.
8  ;; If there is more than one, they won't work right.
9  '(ansi-color-faces-vector
10    [default default default italic underline success warning error])
11  '(ansi-color-names-vector
12    ["#212526" "#ff4b4b" "#b4fa70" "#fce94f" "#729fcf" "#e090d7" "#8cc4ff" "#eeeeec"])
13  '(auto-save-file-name-transforms (quote ((".*" "~/.emacs.d/autosaves/\\1" t))))
14  '(backup-directory-alist (quote ((".*" . "~/.emacs.d/backups/"))))
15  '(custom-enabled-themes (quote (molokai)))
16  '(custom-safe-themes
17    (quote
18     ("3c83b3676d796422704082049fc38b6966bcad960f896669dfc21a7a37a748fa" "4e753673a37c71b07e3026be75dc6af3efbac5ce335f3707b7d6a110ecb636a3" "b571f92c9bfaf4a28cb64ae4b4cdbda95241cd62cf07d942be44dc8f46c491f4" default)))
19  '(fci-rule-color "#383838")
20  '(nrepl-message-colors
21    (quote
22     ("#CC9393" "#DFAF8F" "#F0DFAF" "#7F9F7F" "#BFEBBF" "#93E0E3" "#94BFF3" "#DC8CC3")))
23  '(package-selected-packages
24    (quote
25     (smart-mode-line sml mu4e-alert yaml-mode minimap js2-mode editorconfig wanderlust evil-magit evil-leader evil-org molokai-theme org-evil flycheck-mypy jinja2 jinja2-mode highlight-indent-guides projectile helm-projectile zenburn-theme helm helm-config use-package flycheck company-jedi company org evil)))
26  '(pdf-view-midnight-colors (quote ("#DCDCCC" . "#383838")))
27  '(vc-annotate-background "#2B2B2B")
28  '(vc-annotate-color-map
29    (quote
30     ((20 . "#BC8383")
31      (40 . "#CC9393")
32      (60 . "#DFAF8F")
33      (80 . "#D0BF8F")
34      (100 . "#E0CF9F")
35      (120 . "#F0DFAF")
36      (140 . "#5F7F5F")
37      (160 . "#7F9F7F")
38      (180 . "#8FB28F")
39      (200 . "#9FC59F")
40      (220 . "#AFD8AF")
41      (240 . "#BFEBBF")
42      (260 . "#93E0E3")
43      (280 . "#6CA0A3")
44      (300 . "#7CB8BB")
45      (320 . "#8CD0D3")
46      (340 . "#94BFF3")
47      (360 . "#DC8CC3"))) t)
48  '(vc-annotate-very-old-color "#DC8CC3"))
49 (custom-set-faces
50  ;; custom-set-faces was added by Custom.
51  ;; If you edit it by hand, you could mess it up, so be careful.
52  ;; Your init file should contain only one such instance.
53  ;; If there is more than one, they won't work right.
54  )
55
56 ;; Create autosave dir
57 (make-directory "~/.emacs.d/autosaves/" t)
58
59 (use-package evil
60   :init
61   (setq evil-want-C-i-jump nil)
62   :ensure t
63   :config (evil-mode 1))
64
65 (use-package org
66   :ensure t)
67
68 (use-package org-evil
69   :ensure t)
70
71 (use-package flycheck
72   :ensure t
73   :init (global-flycheck-mode))
74
75 (use-package flycheck-mypy
76   :ensure t)
77
78 (use-package helm-config
79   :ensure helm
80   :config
81   (helm-mode 1)
82   (global-set-key (kbd "M-x") 'helm-M-x))
83
84 (use-package projectile
85   :ensure t)
86
87 (use-package helm-projectile
88   :ensure t
89   :config
90   (projectile-global-mode)
91   (setq projectile-completion-system 'helm)
92   (helm-projectile-on))
93
94 (use-package highlight-indent-guides
95   :ensure t
96   :config
97   (add-hook 'prog-mode-hook 'highlight-indent-guides-mode)
98   (setq highlight-indent-guides-method 'character)
99   (setq highlight-indent-guides-character ?\|)
100   (set-face-foreground 'highlight-indent-guides-character-face "darkgray"))
101
102 (use-package jinja2-mode
103   :ensure t)
104
105 (use-package whitespace
106   :config
107   (setq whitespace-style '(face lines))
108   (setq whitespace-line-column 80)
109   (global-whitespace-mode +1))
110
111 (use-package magit
112   :ensure t
113   :config
114   (global-set-key (kbd "C-x g") 'magit-status))
115
116 (use-package evil-magit
117   :ensure t)
118
119 (use-package editorconfig
120   :ensure t
121   :init
122   (add-hook 'prog-mode-hook (editorconfig-mode 1))
123   (add-hook 'text-mode-hook (editorconfig-mode 1)))
124
125 (use-package js2-mode
126   :ensure t
127   :config
128   (add-to-list 'auto-mode-alist '("\\.js\\'" . js2-mode))
129   (setq js2-strict-missing-semi-warning nil))
130
131 (use-package yaml-mode
132   :ensure t)
133
134 (use-package mu4e
135   :config
136   (setq
137    mu4e-maildir "~/mail"
138    mu4e-get-mail-command
139    (concat "/usr/bin/mbsync -c /home/max/.mbsync/personal.mbsync -a &&"
140            "/usr/bin/mbsync -c /home/max/.mbsync/personal-gmail.mbsync -a &&"
141            "/usr/bin/mbsync -c /home/max/.mbsync/aber.mbsync -a")
142    mu4e-update-interval 60)
143   ; Force mu4e to rename file on moving
144   (setq mu4e-change-filenames-when-moving t)
145   (setq
146    message-send-mail-function 'smtpmail-send-it
147    smtpmail-default-smtp-server "mail.friedersdorff.com"
148    smtpmail-auth-credentials (expand-file-name "~/.authinfo.gpg"))
149   (setq mu4e-drafts-folder "/Drafts")
150   (setq mu4e-contexts
151         `( , (make-mu4e-context
152               :name "Personal"
153               :enter-func (lambda () (mu4e-message "Switch to Peronal context"))
154               :match-func (lambda (msg)
155                             (when msg
156                               (mu4e-message-contact-field-matches
157                                msg (list :to :cc :bcc)
158                                "max\\+?.*@frie\\(dersdorff\\)?.com")))
159               :vars '((user-mail-address . "max@friedersdorff.com")
160                       (user-full-name . "Maximilian Friedersdorff")
161                       (mu4e-sent-folder . "/personal/Sent")
162                       (mu4e-trash-folder . "/personal/Trash")
163                       (smtpmail-smtp-server . "mail.friedersdorff.com")
164                       (smtpmail-smtp-service . 587))),
165             (make-mu4e-context
166              :name "Gmail"
167              :enter-func (lambda () (mu4e-message "Switch to Gmail context"))
168              :match-func (lambda (msg)
169                            (when msg
170                              (mu4e-message-contact-field-matches
171                               msg (list :to :cc :bcc)
172                               "maxf130\\+?.*@gmail.com")))
173              :vars '((user-mail-address . "maxf130@gmail.com")
174                      (user-full-name . "Maximilian Friedersdorff")
175                      (mu4e-sent-folder . "/personal-gmail/Sent")
176                      (mu4e-sent-messages-behaviour . 'delete)
177                      (smtpmail-smtp-server . "smtp.gmail.com")
178                      (smtpmail-smtp-service . 587))),
179             (make-mu4e-context
180              :name "Aber"
181              :enter-func (lambda () (mu4e-message "Switch to Aber context"))
182              :match-func (lambda (msg)
183                            (when msg
184                              (mu4e-message-contact-field-matches
185                               msg (list :to :cc :bcc)
186                               ".*@aber.ac.uk")))
187              :vars '((user-mail-address . "maf54@aber.ac.uk")
188                      (user-full-name . "Maximilian Friedersdorff")
189                      (mu4e-sent-folder . "/aber/Sent")
190                      (mu4e-trash-folder . "/aber/Trash")
191                      (smtpmail-smtp-server . "smtp.office365.com")
192                      (smtpmail-smtp-service . 587))))
193
194         mu4e-context-policy 'pick-first)
195   (setq mu4e-html2text-command "lynx -stdin -dump -force_html")
196   (add-to-list 'mu4e-bookmarks
197                '((concatenate
198                   'string
199                   "flag:unread "
200                   "AND ( "
201                   "maildir:/personal/Inbox OR "
202                   "maildir:/personal/slackware OR "
203                   "maildir:/personal-gmail/Inbox OR "
204                   "maildir:/aber/Inbox "
205                   ")") "Unread Interesting Messages" ?i)
206                )
207   (setq mu4e-view-show-images t)
208   (setq mu4e-compose-crypto-reply-policy 'sign-and-encrypt)
209   (setq mml-secure-openpgp-sign-with-sender t)
210   (setq mml-default-encrypt-method "pgpmime")
211   (add-hook 'mu4e-compose-mode-hook 'mml-secure-message-sign)
212   )
213
214 (use-package mu4e-alert
215   :ensure t
216   :config
217   (setq mu4e-alert-interesting-mail-query
218         (concatenate
219          'string
220          "flag:unread "
221          "AND ( "
222          "maildir:/personal/Inbox OR "
223          "maildir:/personal/slackware OR "
224          "maildir:/personal-gmail/Inbox OR "
225          "maildir:/aber/Inbox "
226          ")"))
227   (mu4e-alert-set-default-style 'libnotify)
228   (add-hook 'after-init-hook #'mu4e-alert-enable-notifications))
229
230 (use-package jl-encrypt)
231
232 (use-package smart-mode-line
233   :ensure t
234   :config
235   (sml/setup))
236
237
238 ;;;(global-company-mode)
239 ;;;(add-hook 'after-init-hook 'global-company-mode)
240
241 (add-hook 'prog-mode-hook 'electric-pair-mode)
242
243 (eval-after-load 'company
244   '(add-to-list 'company-backends 'company-jedi))