blob: 44121edf61bb5a8ee69110e83beb970c5cb8471a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
|
;;; $DOOMDIR/config.el -*- lexical-binding: t; -*-
(add-to-list 'custom-theme-load-path
"~/.config/doom/extra-themes/")
(remove-hook 'doom-first-input-hook #'evil-snipe-mode)
;; eglot stuff (filed bug #60570)
(after! eglot
(cl-defmethod eglot-register-capability
(server (method (eql workspace/didChangeWatchedFiles)) id &key watchers)
"see eglot#1258"
nil))
(setq eglot-sync-connect nil
eglot-connect-timeout 60)
;;themes and stuff
(setq doom-font (font-spec :family "Berkeley Mono" :size 12.0))
;; (setq doom-theme 'doom-flatwhite)
;; (setq doom-theme 'fortune-gold)
(setq doom-theme 'doom-badger)
(setq display-line-numbers-type t)
(setq org-directory "~/notes/")
;; emms (unused for now)
(use-package! emms
:config
(require 'emms-setup)
(require 'emms-player-mpd)
(emms-all)
(emms-default-players)
(emms-mpris-enable)
(setq emms-source-file-default-directory "~/Music/")
(setq emms-player-list
'(emms-player-mpd)))
(map!
:leader
:prefix "e"
:desc "Browser" "b" #'emms-browser
:desc "Emms" "e" #'emms
:desc "Play playlist" "a" #'emms-play-playlist)
;; mood-line
(use-package mood-line
:config
(mood-line-mode)
:custom
(mood-line-glyph-alist mood-line-glyphs-fira-code))
;; xmpp(jabber)
(use-package! jabber
:config
(setq jabber-account-list
'(("roughlynamed@yax.im")))
(jabber-modeline-mode 1)
:hook (kill-emacs . jabber-disconnect))
(map! :leader
:prefix "j"
:desc "Jabber connect" "c" #'jabber-connect-all
:desc "Jabber disconnect" "q" #'jabber-disconnect
:desc "Jabber roster" "r" #'jabber-switch-to-roster-buffer
:desc "Jabber new chat" "n" #'jabber-chat-with
:desc "Jabber groupchat" "g" #'jabber-groupchat-join
:desc "Jabber set status" "s" #'jabber-send-presence)
;; zk4e
(use-package! zk4e
:commands (zk4e-list zk4e-edit zk4e-new zk4e-tag-list zk4e-index zk4e-select-notebook
zk4e-goto-error)
:custom
(zk4e-notebook-directories '(("notes" . "~/notes/")))
:config
(zk4e-select-notebook "notes")
(add-hook 'zk4e-edit-hook #'zk4e-maybe-name-buffer))
;; Gnus
;; Authentication
(setq auth-sources '("~/.authinfo.gpg")
auth-source-cache-expiry nil)
;; Gnus / IMAP
(setq gnus-select-method
'(nnimap "disroot"
(nnimap-address "disroot.org")
(nnimap-server-port 993)
(nnimap-stream ssl)))
;; SMTP
(setq smtpmail-smtp-server "disroot.org"
smtpmail-smtp-service 587
smtpmail-stream-type 'starttls
message-send-mail-function #'smtpmail-send-it)
;; Identity
(setq user-mail-address "roughlynamed@disroot.org"
user-full-name "Magdalena Szweda")
;; Sent mail
(setq gnus-message-archive-method '(nnimap "disroot")
gnus-message-archive-group "Sent")
;; Mail behavior
(setq gnus-large-newsgroup nil
gnus-fetch-old-headers t
nnmail-expiry-target "Trash")
;; PGP
(setq mml-secure-openpgp-signers
'("3258B28C124AB0891D6C9E929B72909EEF00CBD0")
mml-secure-openpgp-sign-with-sender t)
(add-hook 'message-setup-hook #'message-insert-signature)
(add-hook 'message-send-hook #'mml-secure-message-sign-pgpmime)
(setq message-signature
"\n--\nMagdalena Szweda\nhttps://roughlynamed.net\nPGP: 3258 B28C 124A B089 1D6C 9E92 9B72 909E EF00 CBD0")
;; vterm (just in case)
(setq-default vterm-shell "/usr/bin/fish")
(setq-default explicit-shell-file-name "/usr/bin/fish")
(setq-default vterm-shell "/usr/bin/fish")
(setq-default explicit-shell-file-name "/usr/bin/fish")
(map! :leader
(:prefix ("n z" . "zk")
:desc "Edit note" "e" #'zk4e-edit
:desc "New note" "n" #'zk4e-new
:desc "List notes" "l" #'zk4e-list
:desc "Index" "i" #'zk4e-index
:desc "Tags" "t" #'zk4e-tag-list
:desc "Switch notebook" "s" #'zk4e-select-notebook
:desc "Error log" "!" #'zk4e-goto-error))
;; lotta eVIl stuff
(evil-define-key '(normal visual operator) 'global
"n" 'evil-backward-char
"e" 'evil-next-line
"i" 'evil-previous-line
"o" 'evil-forward-char)
(evil-define-key '(normal visual operator) 'global
"l" 'evil-backward-word-begin
"L" 'evil-backward-WORD-begin
"u" 'evil-forward-word-end
"U" 'evil-forward-WORD-end
"y" 'evil-forward-word-begin
"Y" 'evil-forward-word-begin)
(with-eval-after-load 'evil-ex
(define-key evil-ex-completion-map (kbd "C-l") 'left-word)
(define-key evil-ex-completion-map (kbd "C-y") 'right-word))
(evil-define-key 'normal 'global
"s" 'evil-insert
"S" 'evil-insert-line
"t" 'evil-append
"T" 'evil-append-line
"h" 'evil-open-below
"H" 'evil-open-above)
(evil-define-key '(normal visual) 'global
"w" 'evil-change
"W" 'evil-change-line)
(evil-define-key 'normal 'global
"x" 'evil-delete-char
"c" 'evil-yank
"v" 'evil-paste-after
"X" 'evil-delete-line
"C" 'evil-yank-line
"V" 'evil-paste-before)
(evil-define-key 'visual 'global
"x" 'evil-delete
"c" 'evil-yank
"v" 'evil-paste-after)
(evil-define-key 'normal 'global
"z" 'evil-undo
"Z" 'evil-redo)
(evil-define-key 'normal 'global
"a" 'evil-visual-char
"A" 'evil-visual-line
"ga" 'evil-visual-restore)
(evil-define-key '(normal visual operator) 'global
"p" 'evil-find-char-to
"P" 'evil-find-char-to-backward
"b" 'evil-repeat-find-char
"B" 'evil-repeat-find-char-reverse
"k" 'evil-search-next
"K" 'evil-search-previous)
(with-eval-after-load 'evil
(evil-define-key '(operator visual) 'global "r" evil-inner-text-objects-map))
(define-prefix-command 'my-colemak-fold-map)
(evil-define-key '(normal visual) 'global "j" 'my-colemak-fold-map)
(define-key my-colemak-fold-map "j" 'evil-scroll-line-to-center)
(define-key my-colemak-fold-map "n" 'evil-scroll-line-to-top)
(define-key my-colemak-fold-map "e" 'evil-scroll-line-to-bottom)
(evil-define-key 'normal 'global
"gK" 'evil-lookup)
(evil-define-key 'normal 'global
(kbd "C-w n") 'evil-window-left
(kbd "C-w e") 'evil-window-down
(kbd "C-w i") 'evil-window-up
(kbd "C-w o") 'evil-window-right)
(defun my/hs-eval ()
(interactive)
(let* ((src (buffer-file-name))
(out (file-name-sans-extension src)))
(when (zerop (call-process-shell-command
(format "runghc %s" src) nil "*runghc-output*"))
(let ((buf (make-comint "hs-run" out)))
(display-buffer buf)))))
(add-hook 'haskell-mode-hook
(lambda ()
(local-set-key (kbd "<f5>") #'my/hs-eval)))
;; Whenever you reconfigure a package, make sure to wrap your config in an
;; `with-eval-after-load' block, otherwise Doom's defaults may override your
;; settings. E.g.
;;
;; (with-eval-after-load 'PACKAGE
;; (setq x y))
;;
;; The exceptions to this rule:
;;
;; - Setting file/directory variables (like `org-directory')
;; - Setting variables which explicitly tell you to set them before their
;; package is loaded (see 'C-h v VARIABLE' to look them up).
;; - Setting doom variables (which start with 'doom-' or '+').
;;
;; Here are some additional functions/macros that will help you configure Doom.
;;
;; - `load!' for loading external *.el files relative to this one
;; - `add-load-path!' for adding directories to the `load-path', relative to
;; this file. Emacs searches the `load-path' when you load packages with
;; `require' or `use-package'.
;; - `map!' for binding new keys
;;
;; To get information about any of these functions/macros, move the cursor over
;; the highlighted symbol at press 'K' (non-evil users must press 'C-c c k').
;; This will open documentation for it, including demos of how they are used.
;; Alternatively, use `C-h o' to look up a symbol (functions, variables, faces,
;; etc).
;;
;; You can also try 'gd' (or 'C-c c d') to jump to their definition and see how
;; they are implemented.
|