Blame


1 cd826e3e 2023-06-26 benni #+TITLE: My New Emacs Config
2 cd826e3e 2023-06-26 benni #+AUTHOR: Benjamin Stürz
3 cd826e3e 2023-06-26 benni #+OPTIONS: toc:2
4 cd826e3e 2023-06-26 benni
5 cd826e3e 2023-06-26 benni * Initialization
6 cd826e3e 2023-06-26 benni ** Variables
7 cd826e3e 2023-06-26 benni #+begin_src emacs-lisp
8 207936f2 2023-11-16 benni (set-face-attribute 'default nil :height 64)
9 cd826e3e 2023-06-26 benni (add-to-list 'bdf-directory-list (expand-file-name "~/.local/share/fonts"))
10 f9f58f5b 2023-12-23 benni ;(add-to-list 'bdf-directory-list "a")
11 cd826e3e 2023-06-26 benni
12 f9f58f5b 2023-12-23 benni (setq max-lisp-eval-depth 2000)
13 cd826e3e 2023-06-26 benni ;;(defalias 'yes-or-no-p 'y-or-no-p)
14 cd826e3e 2023-06-26 benni #+end_src
15 cd826e3e 2023-06-26 benni
16 cd826e3e 2023-06-26 benni ** Package Management
17 cd826e3e 2023-06-26 benni #+begin_src emacs-lisp
18 cd826e3e 2023-06-26 benni (require 'package)
19 cd826e3e 2023-06-26 benni (setq package-archives '(("melpa" . "https://melpa.org/packages/")
20 cd826e3e 2023-06-26 benni ("org" . "https://orgmode.org/elpa/")
21 cd826e3e 2023-06-26 benni ("elpa" . "https://elpa.gnu.org/packages/")))
22 cd826e3e 2023-06-26 benni
23 cd826e3e 2023-06-26 benni (package-initialize)
24 cd826e3e 2023-06-26 benni (unless package-archive-contents
25 cd826e3e 2023-06-26 benni (package-refresh-contents))
26 cd826e3e 2023-06-26 benni
27 cd826e3e 2023-06-26 benni ;; Initialize use-package
28 cd826e3e 2023-06-26 benni (unless (package-installed-p 'use-package)
29 cd826e3e 2023-06-26 benni (package-install 'use-package))
30 cd826e3e 2023-06-26 benni
31 cd826e3e 2023-06-26 benni (require 'use-package)
32 cd826e3e 2023-06-26 benni (setq use-package-always-ensure t)
33 cd826e3e 2023-06-26 benni ;;(setq use-package-verbose t)
34 cd826e3e 2023-06-26 benni
35 cd826e3e 2023-06-26 benni (use-package no-littering)
36 cd826e3e 2023-06-26 benni (setq auto-save-file-name-transforms `((".*" ,(no-littering-expand-var-file-name "auto-save/") t)))
37 cd826e3e 2023-06-26 benni (setq backup-directory-alist `(("." . ,(no-littering-expand-var-file-name "auto-save/"))))
38 cd826e3e 2023-06-26 benni #+end_src
39 cd826e3e 2023-06-26 benni
40 cd826e3e 2023-06-26 benni ** Modes
41 cd826e3e 2023-06-26 benni #+begin_src emacs-lisp
42 cd826e3e 2023-06-26 benni (scroll-bar-mode -1) ;; Disable visible scroll bar
43 cd826e3e 2023-06-26 benni (tool-bar-mode -1) ;; Disable the toolbar
44 cd826e3e 2023-06-26 benni (tooltip-mode -1) ;; Disable tooltips
45 cd826e3e 2023-06-26 benni (menu-bar-mode -1) ;; Disable the menubar
46 cd826e3e 2023-06-26 benni (set-fringe-mode 10) ;; Give some breathing room
47 cd826e3e 2023-06-26 benni (column-number-mode) ;;
48 59a3509f 2023-10-06 benni (setq display-line-numbers-type 'relative) ;; Relative line numbers
49 cd826e3e 2023-06-26 benni (global-display-line-numbers-mode t) ;; Display line numbers
50 cd826e3e 2023-06-26 benni (recentf-mode 1) ;; Save recently opened files mode
51 cd826e3e 2023-06-26 benni ;;(recentf-load-list) ;; Load recently opened files
52 cd826e3e 2023-06-26 benni (setq history-length 100) ;;
53 cd826e3e 2023-06-26 benni (savehist-mode 1) ;; Save history
54 cd826e3e 2023-06-26 benni (save-place-mode 1) ;; Save place in file
55 cd826e3e 2023-06-26 benni (setq global-auto-revert-non-file-buffers t)
56 cd826e3e 2023-06-26 benni (global-auto-revert-mode 1) ;;
57 cd826e3e 2023-06-26 benni #+end_src
58 cd826e3e 2023-06-26 benni
59 cd826e3e 2023-06-26 benni ** UI Configuration
60 cd826e3e 2023-06-26 benni #+begin_src emacs-lisp
61 cd826e3e 2023-06-26 benni (setq ring-bell-function 'ignore ;; Disable the bell
62 cd826e3e 2023-06-26 benni inhibit-startup-message t ;; Don't display the startup screen
63 cd826e3e 2023-06-26 benni scroll-step 1 ;; Make scrolling smoother
64 cd826e3e 2023-06-26 benni scroll-conservatively 10000 ;; Remove the jumpiness
65 cd826e3e 2023-06-26 benni use-dialog-box nil ;; Don't show the dialog box
66 cd826e3e 2023-06-26 benni custom-file (locate-user-emacs-file "custom.el"))
67 cd826e3e 2023-06-26 benni
68 cd826e3e 2023-06-26 benni (load custom-file 'noerror 'nomessage)
69 cd826e3e 2023-06-26 benni
70 cd826e3e 2023-06-26 benni ;; Make the frame fullscreen
71 cd826e3e 2023-06-26 benni (set-frame-parameter (selected-frame) 'fullscreen 'maximized)
72 cd826e3e 2023-06-26 benni (add-to-list 'default-frame-alist '(fullscreen . maximized))
73 cd826e3e 2023-06-26 benni
74 cd826e3e 2023-06-26 benni ;; Disable line numbers for some modes
75 cd826e3e 2023-06-26 benni (dolist (mode '(term-mode-hook
76 cd826e3e 2023-06-26 benni shell-mode-hook
77 cd826e3e 2023-06-26 benni treemacs-mode-hook
78 cd826e3e 2023-06-26 benni eshell-mode-hook
79 cd826e3e 2023-06-26 benni vterm-mode-hook))
80 cd826e3e 2023-06-26 benni (add-hook mode (lambda () (display-line-numbers-mode 0))))
81 cd826e3e 2023-06-26 benni #+end_src
82 cd826e3e 2023-06-26 benni
83 cd826e3e 2023-06-26 benni * Packages
84 cd826e3e 2023-06-26 benni ** Appearence
85 cd826e3e 2023-06-26 benni #+begin_src emacs-lisp
86 cd826e3e 2023-06-26 benni (use-package doom-themes
87 cd826e3e 2023-06-26 benni :init
88 cd826e3e 2023-06-26 benni (load-theme 'doom-palenight t))
89 cd826e3e 2023-06-26 benni
90 cd826e3e 2023-06-26 benni (use-package rainbow-delimiters
91 cd826e3e 2023-06-26 benni :hook (prog-mode . rainbow-delimiters-mode))
92 cd826e3e 2023-06-26 benni
93 cd826e3e 2023-06-26 benni ;; (use-package all-the-icons
94 cd826e3e 2023-06-26 benni ;; :if (display-graphic-p)
95 cd826e3e 2023-06-26 benni ;; :commands all-the-icons-install-fonts
96 cd826e3e 2023-06-26 benni ;; :init
97 cd826e3e 2023-06-26 benni ;; (unless (find-font (font-spec :name "all-the-icons"))
98 cd826e3e 2023-06-26 benni ;; (all-the-icons-install-fonts t)))
99 cd826e3e 2023-06-26 benni
100 cd826e3e 2023-06-26 benni ;; (use-package moody
101 cd826e3e 2023-06-26 benni ;; :config
102 cd826e3e 2023-06-26 benni ;; (setq x-underline-at-descent-line t
103 cd826e3e 2023-06-26 benni ;; mood-mode-line-height 10)
104 cd826e3e 2023-06-26 benni ;; (moody-replace-mode-line-buffer-identification)
105 cd826e3e 2023-06-26 benni ;; (moody-replace-vc-mode)
106 cd826e3e 2023-06-26 benni ;; (moody-replace-eldoc-minibuffer-message-function))
107 cd826e3e 2023-06-26 benni
108 cd826e3e 2023-06-26 benni ;;(use-package doom-modeline
109 cd826e3e 2023-06-26 benni ;; :init
110 cd826e3e 2023-06-26 benni ;; (doom-modeline-mode 1)
111 cd826e3e 2023-06-26 benni ;; :custom
112 cd826e3e 2023-06-26 benni ;; (doom-modeline-height 10))
113 cd826e3e 2023-06-26 benni #+end_src
114 cd826e3e 2023-06-26 benni
115 cd826e3e 2023-06-26 benni ** Dashboard
116 cd826e3e 2023-06-26 benni #+begin_src emacs-lisp
117 cd826e3e 2023-06-26 benni (use-package page-break-lines)
118 cd826e3e 2023-06-26 benni (use-package dashboard
119 cd826e3e 2023-06-26 benni :after page-break-lines
120 cd826e3e 2023-06-26 benni :config
121 cd826e3e 2023-06-26 benni (setq initial-buffer-choice (lambda () (get-buffer-create "*dashboard*"))
122 cd826e3e 2023-06-26 benni dashboard-banner-logo-title "Emacs Dashboard"
123 cd826e3e 2023-06-26 benni dashboard-startup-banner 'logo
124 cd826e3e 2023-06-26 benni dashboard-center-content t
125 cd826e3e 2023-06-26 benni dashboard-set-heading-icons t
126 cd826e3e 2023-06-26 benni dashboard-set-file-icons t
127 cd826e3e 2023-06-26 benni dashboard-set-navigator t
128 cd826e3e 2023-06-26 benni dashboard-items '((recents . 5) (bookmarks . 5) (projects . 5) (agenda . 5) (registers . 5)))
129 cd826e3e 2023-06-26 benni (dashboard-setup-startup-hook))
130 cd826e3e 2023-06-26 benni #+end_src
131 cd826e3e 2023-06-26 benni
132 cd826e3e 2023-06-26 benni ** Undo
133 cd826e3e 2023-06-26 benni #+begin_src emacs-lisp
134 cd826e3e 2023-06-26 benni (if (version< emacs-version "28.1")
135 cd826e3e 2023-06-26 benni (progn
136 cd826e3e 2023-06-26 benni (use-package undo-fu)
137 cd826e3e 2023-06-26 benni (setq benni/redo 'undo-fu))
138 cd826e3e 2023-06-26 benni (setq benni/redo 'undo-redo))
139 cd826e3e 2023-06-26 benni #+end_src
140 cd826e3e 2023-06-26 benni ** Evil
141 cd826e3e 2023-06-26 benni #+begin_src emacs-lisp
142 cd826e3e 2023-06-26 benni (use-package evil
143 cd826e3e 2023-06-26 benni :init
144 cd826e3e 2023-06-26 benni (setq evil-want-integration t
145 cd826e3e 2023-06-26 benni evil-want-keybinding nil
146 cd826e3e 2023-06-26 benni evil-want-C-u-scroll t
147 cd826e3e 2023-06-26 benni evil-want-C-i-jump nil
148 cd826e3e 2023-06-26 benni evil-want-fine-undo t
149 cd826e3e 2023-06-26 benni evil-undo-system benni/redo)
150 cd826e3e 2023-06-26 benni
151 cd826e3e 2023-06-26 benni :config
152 cd826e3e 2023-06-26 benni (evil-mode 1)
153 cd826e3e 2023-06-26 benni (define-key evil-insert-state-map (kbd "C-g") 'evil-normal-state)
154 cd826e3e 2023-06-26 benni (define-key evil-insert-state-map (kbd "C-h") 'evil-delete-backward-char-and-join)
155 cd826e3e 2023-06-26 benni (define-key evil-normal-state-map (kbd "C-.") 'evil-switch-to-windows-last-buffer)
156 cd826e3e 2023-06-26 benni (global-set-key (kbd "C-.") 'evil-switch-to-windows-last-buffer)
157 cd826e3e 2023-06-26 benni
158 cd826e3e 2023-06-26 benni ;; Use visual line motions even outside of visual-line-mode buffers.
159 cd826e3e 2023-06-26 benni (evil-global-set-key 'motion "j" 'evil-next-visual-line)
160 cd826e3e 2023-06-26 benni (evil-global-set-key 'motion "k" 'evil-previous-visual-line)
161 cd826e3e 2023-06-26 benni
162 cd826e3e 2023-06-26 benni (evil-set-initial-state 'messages-buffer-mode 'normal)
163 cd826e3e 2023-06-26 benni (evil-set-initial-state 'dashboard-mode 'normal))
164 cd826e3e 2023-06-26 benni
165 cd826e3e 2023-06-26 benni (use-package evil-collection
166 cd826e3e 2023-06-26 benni :after evil
167 cd826e3e 2023-06-26 benni :config
168 cd826e3e 2023-06-26 benni (evil-collection-init))
169 cd826e3e 2023-06-26 benni #+end_src
170 cd826e3e 2023-06-26 benni
171 cd826e3e 2023-06-26 benni ** Ivy
172 cd826e3e 2023-06-26 benni #+begin_src emacs-lisp
173 cd826e3e 2023-06-26 benni (use-package ivy
174 cd826e3e 2023-06-26 benni :diminish
175 cd826e3e 2023-06-26 benni :bind (("C-s" . swiper)
176 cd826e3e 2023-06-26 benni :map ivy-minibuffer-map
177 cd826e3e 2023-06-26 benni ("TAB" . ivy-alt-done))
178 cd826e3e 2023-06-26 benni :config
179 cd826e3e 2023-06-26 benni (ivy-mode 1))
180 cd826e3e 2023-06-26 benni
181 cd826e3e 2023-06-26 benni (use-package ivy-rich
182 cd826e3e 2023-06-26 benni :after ivy
183 cd826e3e 2023-06-26 benni :init
184 cd826e3e 2023-06-26 benni (ivy-rich-mode 1))
185 cd826e3e 2023-06-26 benni
186 cd826e3e 2023-06-26 benni (use-package ivy-prescient
187 cd826e3e 2023-06-26 benni :after (ivy counsel prescient)
188 cd826e3e 2023-06-26 benni :config
189 cd826e3e 2023-06-26 benni (setq ivy-prescient-retain-classic-highlighting t)
190 cd826e3e 2023-06-26 benni (ivy-prescient-mode 1))
191 cd826e3e 2023-06-26 benni #+end_src
192 cd826e3e 2023-06-26 benni
193 cd826e3e 2023-06-26 benni ** Consel
194 cd826e3e 2023-06-26 benni #+begin_src emacs-lisp
195 cd826e3e 2023-06-26 benni (use-package counsel
196 cd826e3e 2023-06-26 benni :defer nil
197 cd826e3e 2023-06-26 benni :bind (("M-x" . counsel-M-x)
198 cd826e3e 2023-06-26 benni ("C-x b" . counsel-ibuffer)
199 cd826e3e 2023-06-26 benni ("C-x C-f" . counsel-find-file)
200 cd826e3e 2023-06-26 benni :map minibuffer-local-map
201 cd826e3e 2023-06-26 benni ("C-r" . 'counsel-minibuffer-history))
202 cd826e3e 2023-06-26 benni :config
203 cd826e3e 2023-06-26 benni (setq ivy-initial-inputs-alist nil))
204 cd826e3e 2023-06-26 benni
205 cd826e3e 2023-06-26 benni (use-package counsel-projectile
206 cd826e3e 2023-06-26 benni :after (counsel projectile)
207 cd826e3e 2023-06-26 benni :config (counsel-projectile-mode))
208 cd826e3e 2023-06-26 benni #+end_src
209 cd826e3e 2023-06-26 benni
210 cd826e3e 2023-06-26 benni ** Company
211 cd826e3e 2023-06-26 benni #+begin_src emacs-lisp
212 cd826e3e 2023-06-26 benni (use-package company
213 cd826e3e 2023-06-26 benni :after lsp-mode
214 cd826e3e 2023-06-26 benni :hook (lsp-mode . company-mode)
215 cd826e3e 2023-06-26 benni :bind
216 cd826e3e 2023-06-26 benni (:map lsp-mode-map ("<tab>" . company-indent-or-complete-common))
217 cd826e3e 2023-06-26 benni (:map company-active-map ("<tab>" . company-complete-selection))
218 cd826e3e 2023-06-26 benni :custom
219 cd826e3e 2023-06-26 benni (company-minimum-prefix-length 1)
220 cd826e3e 2023-06-26 benni (company-idle-delay 0.5))
221 cd826e3e 2023-06-26 benni
222 cd826e3e 2023-06-26 benni (use-package company-box
223 cd826e3e 2023-06-26 benni :hook (company-mode . company-box-mode))
224 cd826e3e 2023-06-26 benni
225 cd826e3e 2023-06-26 benni (use-package company-prescient
226 cd826e3e 2023-06-26 benni :after (company prescient)
227 cd826e3e 2023-06-26 benni :config
228 cd826e3e 2023-06-26 benni (company-prescient-mode 1))
229 cd826e3e 2023-06-26 benni #+end_src
230 cd826e3e 2023-06-26 benni
231 cd826e3e 2023-06-26 benni ** Flycheck
232 cd826e3e 2023-06-26 benni #+begin_src emacs-lisp
233 cd826e3e 2023-06-26 benni (use-package flycheck
234 cd826e3e 2023-06-26 benni :after lsp-mode)
235 cd826e3e 2023-06-26 benni #+end_src
236 cd826e3e 2023-06-26 benni
237 cd826e3e 2023-06-26 benni ** Prescient
238 cd826e3e 2023-06-26 benni #+begin_src emacs-lisp
239 cd826e3e 2023-06-26 benni (use-package prescient
240 cd826e3e 2023-06-26 benni :config
241 cd826e3e 2023-06-26 benni (setq prescient-sort-length-enable t
242 cd826e3e 2023-06-26 benni prescient-filter-method '(literal regexp initialism))
243 cd826e3e 2023-06-26 benni (prescient-persist-mode 1))
244 cd826e3e 2023-06-26 benni #+end_src
245 cd826e3e 2023-06-26 benni
246 cd826e3e 2023-06-26 benni ** which-key
247 cd826e3e 2023-06-26 benni #+begin_src emacs-lisp
248 cd826e3e 2023-06-26 benni (use-package which-key
249 cd826e3e 2023-06-26 benni :diminish which-key-mode
250 cd826e3e 2023-06-26 benni :config
251 cd826e3e 2023-06-26 benni (which-key-mode)
252 cd826e3e 2023-06-26 benni (setq which-key-idle-delay 0.5))
253 cd826e3e 2023-06-26 benni #+end_src
254 cd826e3e 2023-06-26 benni
255 cd826e3e 2023-06-26 benni ** helpful
256 cd826e3e 2023-06-26 benni #+begin_src emacs-lisp
257 cd826e3e 2023-06-26 benni (use-package helpful
258 cd826e3e 2023-06-26 benni :after (counsel)
259 cd826e3e 2023-06-26 benni :commands (helpful-callable helpful-variable helpful-command helpful-key)
260 cd826e3e 2023-06-26 benni :custom
261 cd826e3e 2023-06-26 benni (counsel-describe-function-function #'helpful-callable)
262 cd826e3e 2023-06-26 benni (counsel-describe-variable-function #'helpful-variable)
263 cd826e3e 2023-06-26 benni :bind
264 cd826e3e 2023-06-26 benni ([remap describe-function] . counsel-describe-function)
265 cd826e3e 2023-06-26 benni ([remap describe-variable] . counsel-describe-variable)
266 cd826e3e 2023-06-26 benni ([remap describe-command] . helpful-command)
267 cd826e3e 2023-06-26 benni ([remap describe-key] . helpful-key))
268 cd826e3e 2023-06-26 benni #+end_src
269 cd826e3e 2023-06-26 benni
270 cd826e3e 2023-06-26 benni ** vterm
271 cd826e3e 2023-06-26 benni #+begin_src emacs-lisp
272 cd826e3e 2023-06-26 benni (use-package vterm
273 cd826e3e 2023-06-26 benni :commands vterm
274 cd826e3e 2023-06-26 benni :config
275 cd826e3e 2023-06-26 benni (setq vterm-max-scrollback 10000))
276 cd826e3e 2023-06-26 benni #+end_src
277 f9f58f5b 2023-12-23 benni
278 f9f58f5b 2023-12-23 benni ** Perspective
279 f9f58f5b 2023-12-23 benni #+begin_src emacs-lisp
280 f9f58f5b 2023-12-23 benni (use-package perspective
281 f9f58f5b 2023-12-23 benni :custom
282 f9f58f5b 2023-12-23 benni (persp-mode-prefix-key (kbd "C-c TAB"))
283 f9f58f5b 2023-12-23 benni :init
284 f9f58f5b 2023-12-23 benni (persp-mode))
285 cd826e3e 2023-06-26 benni
286 f9f58f5b 2023-12-23 benni (use-package treemacs-perspective
287 f9f58f5b 2023-12-23 benni :after (treemacs perspective)
288 f9f58f5b 2023-12-23 benni :config
289 f9f58f5b 2023-12-23 benni (treemacs-set-scope-type 'Perspectives))
290 f9f58f5b 2023-12-23 benni
291 f9f58f5b 2023-12-23 benni #+end_src
292 cd826e3e 2023-06-26 benni ** General
293 cd826e3e 2023-06-26 benni #+begin_src emacs-lisp
294 cd826e3e 2023-06-26 benni (global-set-key (kbd "<escape>") 'keyboard-escape-quit)
295 cd826e3e 2023-06-26 benni
296 cd826e3e 2023-06-26 benni (use-package general
297 cd826e3e 2023-06-26 benni :config
298 cd826e3e 2023-06-26 benni (general-create-definer
299 cd826e3e 2023-06-26 benni benni/leader-keys
300 cd826e3e 2023-06-26 benni :keymaps '(normal insert visual emacs)
301 cd826e3e 2023-06-26 benni :prefix "SPC"
302 cd826e3e 2023-06-26 benni :global-prefix "C-SPC"))
303 f9f58f5b 2023-12-23 benni #+end_src
304 f9f58f5b 2023-12-23 benni ** Hydra
305 f9f58f5b 2023-12-23 benni #+begin_src emacs-lisp
306 cd826e3e 2023-06-26 benni (use-package hydra
307 cd826e3e 2023-06-26 benni :defer t)
308 cd826e3e 2023-06-26 benni
309 cd826e3e 2023-06-26 benni (benni/leader-keys
310 cd826e3e 2023-06-26 benni "." '(counsel-find-file :which-key "open file")
311 cd826e3e 2023-06-26 benni "V" '(vterm-other-window :which-key "vterm-other-window")
312 cd826e3e 2023-06-26 benni "b" '(:ignore t :which-key "buffer")
313 cd826e3e 2023-06-26 benni "bK" '(kill-buffer :which-key "kill buffer")
314 f9f58f5b 2023-12-23 benni "bb" '(persp-counsel-switch-buffer :which-key "switch buffer")
315 cd826e3e 2023-06-26 benni "bk" '(kill-current-buffer :which-key "kill current buffer")
316 cd826e3e 2023-06-26 benni "c" '(counsel-compile :which-key "compile")
317 cd826e3e 2023-06-26 benni "g" '(magit-status :which-key "magit")
318 cd826e3e 2023-06-26 benni "m" '(mu4e :which-key "mu4e")
319 cd826e3e 2023-06-26 benni "r" '(counsel-recentf :which-key "recent files")
320 207936f2 2023-11-16 benni "R" '(package-refresh-contents :which-key "update packages")
321 cd826e3e 2023-06-26 benni "t" '(:ignore t :which-key "toggles")
322 cd826e3e 2023-06-26 benni "tm" '(treemacs :which-key "treemacs")
323 cd826e3e 2023-06-26 benni "ts" '(hydra-text-scale/body :which-key "scale text")
324 cd826e3e 2023-06-26 benni "tt" '(counsel-load-theme :which-key "choose theme")
325 f9f58f5b 2023-12-23 benni "v" '(vterm :which-key "vterm")
326 f9f58f5b 2023-12-23 benni "w" '(:ignore t :which-key "workspace")
327 f9f58f5b 2023-12-23 benni "ww" '(persp-switch :which-key "switch")
328 f9f58f5b 2023-12-23 benni "wl" '(persp-switch-last :which-key "switch last")
329 f9f58f5b 2023-12-23 benni "wk" '(persp-kill :which-key "kill"))
330 cd826e3e 2023-06-26 benni
331 cd826e3e 2023-06-26 benni (defhydra hydra-text-scale
332 cd826e3e 2023-06-26 benni (:timeout 5)
333 cd826e3e 2023-06-26 benni "scale text"
334 cd826e3e 2023-06-26 benni ("+" text-scale-increase "in")
335 cd826e3e 2023-06-26 benni ("-" text-scale-decrease "out"))
336 cd826e3e 2023-06-26 benni #+end_src
337 cd826e3e 2023-06-26 benni
338 cd826e3e 2023-06-26 benni ** Magit
339 cd826e3e 2023-06-26 benni #+begin_src emacs-lisp
340 cd826e3e 2023-06-26 benni (use-package magit
341 cd826e3e 2023-06-26 benni :defer t
342 cd826e3e 2023-06-26 benni :commands (magit-status)
343 cd826e3e 2023-06-26 benni :config
344 cd826e3e 2023-06-26 benni (setq magit-display-buffer-function #'magit-display-buffer-fullframe-status-v1))
345 cd826e3e 2023-06-26 benni #+end_src
346 cd826e3e 2023-06-26 benni
347 cd826e3e 2023-06-26 benni ** Treemacs
348 cd826e3e 2023-06-26 benni #+begin_src emacs-lisp
349 cd826e3e 2023-06-26 benni (use-package treemacs
350 cd826e3e 2023-06-26 benni :defer t
351 cd826e3e 2023-06-26 benni :commands (treemacs)
352 cd826e3e 2023-06-26 benni :bind (:map treemacs-mode-map
353 cd826e3e 2023-06-26 benni ("J" . treemacs-select-directory))
354 cd826e3e 2023-06-26 benni :config
355 cd826e3e 2023-06-26 benni (setq treemacs-width 25))
356 cd826e3e 2023-06-26 benni
357 cd826e3e 2023-06-26 benni (use-package treemacs-evil
358 cd826e3e 2023-06-26 benni :after (treemacs evil))
359 cd826e3e 2023-06-26 benni
360 cd826e3e 2023-06-26 benni (use-package treemacs-projectile
361 cd826e3e 2023-06-26 benni :after (treemacs projectile))
362 cd826e3e 2023-06-26 benni
363 cd826e3e 2023-06-26 benni (use-package treemacs-magit
364 cd826e3e 2023-06-26 benni :after (treemacs magit))
365 cd826e3e 2023-06-26 benni #+end_src
366 cd826e3e 2023-06-26 benni
367 cd826e3e 2023-06-26 benni ** Projectile
368 cd826e3e 2023-06-26 benni #+begin_src emacs-lisp
369 cd826e3e 2023-06-26 benni (use-package projectile
370 cd826e3e 2023-06-26 benni :diminish projectile-mode
371 cd826e3e 2023-06-26 benni :config (projectile-mode)
372 cd826e3e 2023-06-26 benni :custom ((projectile-completion-system 'ivy))
373 cd826e3e 2023-06-26 benni :bind-keymap ("C-c p" . projectile-command-map)
374 cd826e3e 2023-06-26 benni :init
375 cd826e3e 2023-06-26 benni (when (file-directory-p "~/src")
376 cd826e3e 2023-06-26 benni (setq projectile-project-searchpath '("~/src")))
377 cd826e3e 2023-06-26 benni (setq projectile-switch-project-action #'projectile-dired))
378 cd826e3e 2023-06-26 benni #+end_src
379 cd826e3e 2023-06-26 benni
380 cd826e3e 2023-06-26 benni * Org
381 cd826e3e 2023-06-26 benni ** Setup
382 cd826e3e 2023-06-26 benni #+begin_src emacs-lisp
383 59a3509f 2023-10-06 benni (use-package gnuplot)
384 cd826e3e 2023-06-26 benni (defun benni/org-mode-setup ()
385 cd826e3e 2023-06-26 benni (org-indent-mode)
386 cd826e3e 2023-06-26 benni (variable-pitch-mode 0)
387 cd826e3e 2023-06-26 benni (auto-fill-mode 0)
388 cd826e3e 2023-06-26 benni (visual-line-mode 1)
389 cd826e3e 2023-06-26 benni (setq evil-auto-indent nil))
390 cd826e3e 2023-06-26 benni #+end_src
391 cd826e3e 2023-06-26 benni ** org
392 cd826e3e 2023-06-26 benni #+begin_src emacs-lisp
393 cd826e3e 2023-06-26 benni (use-package org
394 cd826e3e 2023-06-26 benni :defer t
395 cd826e3e 2023-06-26 benni :pin org
396 cd826e3e 2023-06-26 benni :hook (org-mode . benni/org-mode-setup)
397 cd826e3e 2023-06-26 benni :config
398 cd826e3e 2023-06-26 benni (setq org-ellipsis " ▾"
399 cd826e3e 2023-06-26 benni org-hide-emphasis-markers t
400 cd826e3e 2023-06-26 benni org-done 'time
401 cd826e3e 2023-06-26 benni org-agenda-start-with-log-mode t
402 cd826e3e 2023-06-26 benni org-log-into-drawer t
403 cd826e3e 2023-06-26 benni org-confirm-babel-evaluate nil))
404 cd826e3e 2023-06-26 benni
405 cd826e3e 2023-06-26 benni #+end_src
406 cd826e3e 2023-06-26 benni ** org-tempo
407 cd826e3e 2023-06-26 benni #+begin_src emacs-lisp
408 cd826e3e 2023-06-26 benni (use-package org-tempo
409 cd826e3e 2023-06-26 benni :ensure nil
410 cd826e3e 2023-06-26 benni :after org
411 cd826e3e 2023-06-26 benni :config
412 cd826e3e 2023-06-26 benni (setq org-structure-template-alist '(("c" . "src c")
413 cd826e3e 2023-06-26 benni ("bash" . "src bash")
414 cd826e3e 2023-06-26 benni ("sh" . "src shell")
415 59a3509f 2023-10-06 benni ("rs" . "src rust")
416 207936f2 2023-11-16 benni ("hs" . "src haskell")
417 59a3509f 2023-10-06 benni ("java" . "src java")
418 cd826e3e 2023-06-26 benni ("el" . "src emacs-lisp")
419 cd826e3e 2023-06-26 benni ("a" . "export ascii")
420 cd826e3e 2023-06-26 benni ("C" . "comment")
421 cd826e3e 2023-06-26 benni ("e" . "example")
422 cd826e3e 2023-06-26 benni ("E" . "export")
423 cd826e3e 2023-06-26 benni ("h" . "export html")
424 cd826e3e 2023-06-26 benni ("l" . "export latex")
425 cd826e3e 2023-06-26 benni ("q" . "quote")
426 cd826e3e 2023-06-26 benni ("s" . "src")
427 cd826e3e 2023-06-26 benni ("v" . "verse"))))
428 cd826e3e 2023-06-26 benni #+end_src
429 cd826e3e 2023-06-26 benni
430 cd826e3e 2023-06-26 benni ** org-bullets
431 cd826e3e 2023-06-26 benni #+begin_src emacs-lisp
432 cd826e3e 2023-06-26 benni (use-package org-bullets
433 cd826e3e 2023-06-26 benni :after org
434 cd826e3e 2023-06-26 benni :hook (org-mode . org-bullets-mode)
435 cd826e3e 2023-06-26 benni :custom
436 cd826e3e 2023-06-26 benni (org-bullets-bullet-list '("◉" "○" "●" "○" "●" "○" "●")))
437 cd826e3e 2023-06-26 benni #+end_src
438 cd826e3e 2023-06-26 benni
439 59a3509f 2023-10-06 benni ** org-babel
440 59a3509f 2023-10-06 benni #+begin_src emacs-lisp
441 59a3509f 2023-10-06 benni (use-package ob-rust)
442 59a3509f 2023-10-06 benni (org-babel-do-load-languages 'org-babel-load-languages '((shell . t)
443 59a3509f 2023-10-06 benni (gnuplot . t)
444 59a3509f 2023-10-06 benni (C . t)
445 59a3509f 2023-10-06 benni (rust . t)
446 59a3509f 2023-10-06 benni (haskell . t)
447 59a3509f 2023-10-06 benni (java . t)))
448 59a3509f 2023-10-06 benni #+end_src
449 cd826e3e 2023-06-26 benni * Development
450 cd826e3e 2023-06-26 benni ** lsp-mode
451 cd826e3e 2023-06-26 benni #+begin_src emacs-lisp
452 cd826e3e 2023-06-26 benni (use-package lsp-mode
453 cd826e3e 2023-06-26 benni :commands (lsp lsp-deferred)
454 cd826e3e 2023-06-26 benni :init
455 cd826e3e 2023-06-26 benni (setq lsp-keymap-prefix "C-c l")
456 cd826e3e 2023-06-26 benni :config
457 cd826e3e 2023-06-26 benni (lsp-enable-which-key-integration t))
458 cd826e3e 2023-06-26 benni
459 cd826e3e 2023-06-26 benni (use-package lsp-ui
460 cd826e3e 2023-06-26 benni :hook (lsp-mode . lsp-ui-mode)
461 cd826e3e 2023-06-26 benni :custom
462 cd826e3e 2023-06-26 benni (lsp-ui-doc-position 'bottom))
463 cd826e3e 2023-06-26 benni
464 cd826e3e 2023-06-26 benni (use-package lsp-treemacs
465 cd826e3e 2023-06-26 benni :after (lsp treemacs))
466 cd826e3e 2023-06-26 benni
467 cd826e3e 2023-06-26 benni (use-package lsp-ivy
468 cd826e3e 2023-06-26 benni :after (lsp ivy))
469 cd826e3e 2023-06-26 benni
470 cd826e3e 2023-06-26 benni (add-hook 'c-mode-hook 'lsp)
471 cd826e3e 2023-06-26 benni (add-hook 'c++-mode-hook 'lsp)
472 cd826e3e 2023-06-26 benni #+end_src
473 cd826e3e 2023-06-26 benni ** Indentation Style
474 cd826e3e 2023-06-26 benni #+begin_src emacs-lisp
475 cd826e3e 2023-06-26 benni (add-hook 'c-mode-hook
476 cd826e3e 2023-06-26 benni (lambda ()
477 cd826e3e 2023-06-26 benni (setq c-default-style "linux"
478 cd826e3e 2023-06-26 benni indent-tabs-mode t)))
479 cd826e3e 2023-06-26 benni (add-hook 'c-mode-hook 'c-guess)
480 cd826e3e 2023-06-26 benni #+end_src
481 cd826e3e 2023-06-26 benni ** Editorconfig
482 cd826e3e 2023-06-26 benni #+begin_src emacs-lisp
483 cd826e3e 2023-06-26 benni (use-package editorconfig
484 cd826e3e 2023-06-26 benni :defer 1
485 cd826e3e 2023-06-26 benni :config
486 cd826e3e 2023-06-26 benni (editorconfig-mode 1))
487 cd826e3e 2023-06-26 benni #+end_src
488 cd826e3e 2023-06-26 benni ** CompilerExplorer
489 cd826e3e 2023-06-26 benni #+begin_src emacs-lisp
490 cd826e3e 2023-06-26 benni ;; (use-package compiler-explorer
491 cd826e3e 2023-06-26 benni ;; :commands (compiler-explorer))
492 cd826e3e 2023-06-26 benni #+end_src
493 cd826e3e 2023-06-26 benni ** Rust
494 cd826e3e 2023-06-26 benni #+begin_src emacs-lisp
495 cd826e3e 2023-06-26 benni (add-to-list 'exec-path "~/.cargo/bin")
496 cd826e3e 2023-06-26 benni
497 cd826e3e 2023-06-26 benni (use-package rust-mode
498 cd826e3e 2023-06-26 benni :mode "\\.rs\\'")
499 cd826e3e 2023-06-26 benni
500 cd826e3e 2023-06-26 benni (use-package rustic
501 cd826e3e 2023-06-26 benni :after rust-mode
502 cd826e3e 2023-06-26 benni :bind (:map rustic-mode-map
503 cd826e3e 2023-06-26 benni ("C-c r" . rustic-cargo-run)
504 cd826e3e 2023-06-26 benni ("C-c b" . rustic-cargo-build)
505 cd826e3e 2023-06-26 benni ("C-c t" . rustic-cargo-test)))
506 cd826e3e 2023-06-26 benni
507 cd826e3e 2023-06-26 benni (use-package cargo
508 cd826e3e 2023-06-26 benni :after rust-mode
509 cd826e3e 2023-06-26 benni :init
510 cd826e3e 2023-06-26 benni (add-hook 'rust-mode-hook 'cargo-minor-mode)
511 cd826e3e 2023-06-26 benni (add-hook 'toml-mode-hook 'cargo-minor-mode))
512 cd826e3e 2023-06-26 benni #+end_src
513 59a3509f 2023-10-06 benni ** Java
514 59a3509f 2023-10-06 benni #+begin_src emacs-lisp
515 59a3509f 2023-10-06 benni (use-package lsp-java
516 59a3509f 2023-10-06 benni :after lsp-mode
517 59a3509f 2023-10-06 benni :config
518 59a3509f 2023-10-06 benni (add-hook 'java-mode-hook 'lsp))
519 59a3509f 2023-10-06 benni #+end_src
520 6a4b6d36 2023-10-24 benni ** Haskell
521 6a4b6d36 2023-10-24 benni #+begin_src emacs-lisp
522 6a4b6d36 2023-10-24 benni (use-package haskell-mode
523 6a4b6d36 2023-10-24 benni :mode "\\.hs\\'")
524 6a4b6d36 2023-10-24 benni
525 6a4b6d36 2023-10-24 benni (use-package lsp-haskell
526 6a4b6d36 2023-10-24 benni :init
527 6a4b6d36 2023-10-24 benni (add-hook 'haskell-mode-hook 'lsp)
528 6a4b6d36 2023-10-24 benni (add-hook 'haskell-mode-hook 'haskell-indent-mode)
529 6a4b6d36 2023-10-24 benni (add-hook 'haskell-literate-mode-hook 'lsp))
530 6a4b6d36 2023-10-24 benni #+end_src
531 6dc441b6 2023-10-24 benni ** Verilog
532 6dc441b6 2023-10-24 benni #+begin_src emacs-lisp
533 6dc441b6 2023-10-24 benni (use-package verilog-mode
534 6dc441b6 2023-10-24 benni :defer t
535 6dc441b6 2023-10-24 benni :config
536 6dc441b6 2023-10-24 benni (require 'lsp)
537 6dc441b6 2023-10-24 benni (lsp-register-client
538 6dc441b6 2023-10-24 benni (make-lsp-client :new-connection (lsp-stdio-connection '("svls"))
539 6dc441b6 2023-10-24 benni :major-modes '(verilog-mode)
540 6dc441b6 2023-10-24 benni :priority -1))
541 6dc441b6 2023-10-24 benni :hook (verilog-mode . (lambda ()
542 6dc441b6 2023-10-24 benni (lsp)
543 6dc441b6 2023-10-24 benni (flycheck-mode t)
544 6dc441b6 2023-10-24 benni (add-to-list 'lsp-language-id-configuration '(verilog-mode . "verilog")))))
545 8ec16b76 2024-01-30 benni
546 8ec16b76 2024-01-30 benni (use-package verilog-ext
547 8ec16b76 2024-01-30 benni :mode "\\.v\\'")
548 6dc441b6 2023-10-24 benni #+end_src
549 cd826e3e 2023-06-26 benni * Mail
550 cd826e3e 2023-06-26 benni #+begin_src emacs-lisp
551 cd826e3e 2023-06-26 benni (use-package mu4e
552 cd826e3e 2023-06-26 benni :defer 10
553 cd826e3e 2023-06-26 benni :ensure nil
554 cd826e3e 2023-06-26 benni :commands (mu4e)
555 cd826e3e 2023-06-26 benni ;; :load-path "/usr/local/share/emacs/site-lisp/mu4e/"
556 cd826e3e 2023-06-26 benni :config
557 cd826e3e 2023-06-26 benni (setq mu4e-change-filenames-when-moving t
558 cd826e3e 2023-06-26 benni mu4e-update-interval (* 10 60)
559 cd826e3e 2023-06-26 benni mu4e-get-mail-command "mbsync -a"
560 cd826e3e 2023-06-26 benni mu4e-maildir "~/Mail/benni@stuerz.xyz"
561 cd826e3e 2023-06-26 benni mu4e-drafts-folder "/Drafts"
562 cd826e3e 2023-06-26 benni mu4e-sent-folder "/Sent"
563 cd826e3e 2023-06-26 benni mu4e-trash-folder "/Trash"
564 cd826e3e 2023-06-26 benni mu4e-maildir-shortcuts
565 cd826e3e 2023-06-26 benni '(("/Inbox" . ?i)
566 cd826e3e 2023-06-26 benni ("/Sent" . ?s)
567 cd826e3e 2023-06-26 benni ("/Trash" . ?t)
568 cd826e3e 2023-06-26 benni ("/Drafts" . ?d)
569 cd826e3e 2023-06-26 benni ("/openbsd" . ?O)))
570 cd826e3e 2023-06-26 benni (mu4e t))
571 cd826e3e 2023-06-26 benni #+end_src