init.el (9005B)
1 (setq gc-cons-threshold (* 1024 1024 1024)) 2 3 (setq read-process-output-max (string-to-number 4 (with-temp-buffer 5 (insert-file-contents "/proc/sys/fs/pipe-max-size") 6 (buffer-string)))) 7 8 (require 'server) 9 (unless (server-running-p) 10 (server-start)) 11 12 (require 'benchmark-init) 13 14 (load (locate-user-emacs-file "kakafarm-utils.el")) 15 (load (locate-user-emacs-file "local-stuff.el")) 16 17 (setq package-archives '()) 18 (require 'use-package) 19 20 (dolist (x '("C-c m m" 21 "C-c m <RET>" 22 "C-c <RET> m" 23 "C-c <RET> <RET>")) 24 (keymap-global-set x 'multi-vterm)) 25 26 '(use-package company 27 :defer t 28 :init 29 (add-hook 'after-init-hook 'global-company-mode)) 30 31 (use-package corfu 32 :defer t 33 :config 34 (global-corfu-mode) 35 :custom 36 (corfu-auto t)) 37 38 (use-package cus-edit 39 :config 40 ;; Use another file for the ``customize'' customisations. 41 (setq custom-file (locate-user-emacs-file "custom-variables.el")) 42 (load custom-file 'noerror 'nomessage)) 43 44 (use-package dictionary 45 :defer t 46 :custom 47 (dictionary-server "localhost")) 48 49 (use-package elfeed 50 :defer t 51 :init 52 (load (locate-user-emacs-file "elfeed-feeds.el")) 53 :custom 54 (elfeed-curl-max-connections 10) 55 (elfeed-search-filter "@2-months +unread") 56 (elfeed-feeds kakafarm/elfeed-feeds)) 57 58 '(use-package elfeed-goodies 59 :config 60 (elfeed-goodies/setup)) 61 62 (use-package emacs 63 :ensure nil 64 :defer 65 :bind 66 ;;((";" . #'kakafarm/easy-underscore)) 67 ( 68 ("C-c w" . kakafarm/multi-vterm-weechat) 69 ("C-c p" . kakafarm/percent-read) 70 ("M-x" . helm-M-x) 71 ) 72 ) 73 74 (use-package fontset 75 :defer t 76 :config 77 (set-fontset-font t 'hebrew "Noto Sans Hebrew")) 78 79 (use-package helm 80 :defer t) 81 82 (use-package helpful 83 :defer t 84 :bind 85 ( 86 ("C-h f" . helpful-function) 87 ("C-h k" . helpful-key) 88 ("C-h m" . helpful-mode) 89 ("C-h v" . helpful-variable) 90 ) 91 ) 92 93 (use-package orderless 94 :defer t 95 :custom 96 (completion-styles 97 '(orderless 98 basic)) 99 (completion-category-overrides 100 '((file (styles 101 basic 102 partial-completion))))) 103 104 (use-package erc 105 :defer t 106 :custom 107 (erc-server "irc.libera.chat") 108 (erc-nick "kakafarm") 109 (erc-track-shorten-start 8) 110 (erc-kill-buffer-on-part t) 111 (erc-auto-query 'bury) 112 (erc-autojoin-channels-alist '((libera-kakafarm "#systemcrafters"))) 113 :bind 114 (("C-c i r c" . (lambda () 115 (interactive) 116 (erc-tls :id 'libera-kakafarm)))) 117 ;; :config 118 ;; (erc-tls :id 'libera-kakafarm) 119 ) 120 121 (use-package ffap 122 :defer t 123 :bind 124 ( 125 ("C-c f a p" . ffap-menu) 126 ("C-c f f a p" . kakafarm/ffap-browse-urls) 127 )) 128 129 '(use-package mutli-vterm 130 :defer t 131 :bind 132 (("C-q" . vterm-send-next-key))) 133 134 (use-package geiser 135 :defer t 136 :after (scheme-mode) 137 :config 138 '((define-key 'geiser-mode-map) 139 (setq geiser-active-implementations '(guile)) 140 (global-unset-key "C-c C-a") 141 (unbind-key "C-c C-e" geiser-mode-map) 142 (unbind-key "C-c C-a" geiser-mode-map))) 143 144 (use-package greader 145 :defer t 146 :commands (greader-mode) 147 :config 148 (add-hook 'greader-mode-hook 149 'kakafarm/sentence-end-double-nilify-for-read-only-buffers) 150 :hook ( 151 Custom-mode 152 Info-mode 153 Man-mode 154 elfeed-show 155 elfeed-show-mode 156 elpher 157 eww-after-render 158 fundamental-mode 159 help-mode 160 helpful-mode 161 lisp-mode 162 nov-mode 163 text-mode 164 w3m-mode 165 )) 166 167 (use-package icomplete 168 :defer t 169 :config 170 ;; Display completions continuously in minibuffer. 171 (icomplete-mode 1)) 172 173 (use-package magit-todos 174 :defer t 175 :after magit 176 :config (magit-todos-mode 1)) 177 178 (use-package mastodon 179 :defer t 180 :init 181 (setq mastodon-active-user "kakafarm" 182 mastodon-instance-url "https://emacs.ch/")) 183 184 (use-package modus-themes 185 :defer t 186 :init 187 (setq modus-themes-mode-line '(borderless 188 accented 189 ;; 3d 190 padded 191 ;; moody 192 ) 193 modus-themes-region '(;;accented 194 bg-only 195 ;;no-extend 196 ) 197 modus-themes-paren-match '(bold 198 intense) 199 ;;modus-themes-syntax '(alt-syntax) 200 modus-themes-scale-headings t 201 modus-themes-org-blocks 'tinted-background) 202 (load-theme 'modus-vivendi) 203 ;;(load-theme 'wheatgrass) 204 ) 205 206 (use-package mule 207 :defer t 208 :config 209 ;;; https://emacs.stackexchange.com/questions/34322/set-default-coding-system-utf-8 210 (set-language-environment "utf-8")) 211 212 (use-package info 213 :defer t 214 :custom 215 (Info-additional-directory-list '("~/infopath/"))) 216 217 '(use-package nano-tts 218 :defer t 219 :hook (eww-after-render nov-mode Info-mode)) 220 221 (use-package nov 222 :defer t 223 :mode ("\\.epub\\'" . nov-mode)) 224 225 (use-package org 226 :defer t 227 :config 228 (org-babel-do-load-languages 229 'org-babel-load-languages 230 '((scheme . t) 231 (emacs-lisp . t)))) 232 233 (use-package org-roam 234 :defer t 235 :custom (org-roam-directory "~/mine/roam/") 236 :bind (("C-c n l" . org-roam-buffer-toggle) 237 ("C-c n f" . org-roam-node-find) 238 ("C-c n i" . org-roam-node-insert)) 239 :config 240 ;;(org-roam-db-autosync-enable) 241 ;;(org-roam-db-autosync-mode) 242 ) 243 244 ;; XXX: Disabled. 245 '(use-package parinfer 246 :defer t 247 :hook (emacs-lisp-mode 248 lisp-mode 249 scheme-mode)) 250 251 (use-package paredit 252 :defer t 253 :hook (emacs-lisp-mode 254 lisp-mode 255 scheme-mode)) 256 257 (use-package paren 258 :defer t 259 :config 260 (show-paren-mode)) 261 262 (use-package rainbow-delimiters 263 :defer t 264 :config 265 (rainbow-delimiters-mode)) 266 267 (use-package recentf 268 :defer t 269 :config 270 (recentf-mode 1) 271 :bind (("C-S-t" . recentf-open-files) 272 ("C-c t" . recentf-open-files) 273 ("C-c l" . dictionary-lookup-definition))) 274 275 (use-package undo-tree 276 :defer 277 :config 278 (global-undo-tree-mode 1) 279 (setq undo-tree-auto-save-history nil)) 280 281 (use-package scheme-mode 282 :defer t 283 :mode "\\.\\(scm\\|sxml\\)\\'" 284 ;; :bind (:map scheme-mode-map 285 ;; ("C-c C-e" . arei-mode-map) 286 ;; ("C-c C-a" . arei)) 287 ) 288 289 (use-package simple 290 :defer 291 :init 292 (advice-add 'kill-ring-save 293 :before 294 'kakafarm/pulse-current-region) 295 :config 296 (column-number-mode) 297 ;; Don't want tabs in any of my source files. 298 (setq-default indent-tabs-mode 299 nil) 300 '(advice-add 'scratch-buffer 301 :after 302 (lambda () "Switch to text-mode." 303 (text-mode))) 304 ) 305 306 (use-package window 307 :defer t 308 :config 309 (advice-add 'recenter-top-bottom 310 :around 311 'kakafarm/recenter-top-bottom)) 312 313 (progn 314 ;;; Emacs From Scratch 315 ;;; https://systemcrafters.net/emacs-from-scratch/ 316 ;;; https://www.youtube.com/playlist?list=PLEoMzSkcN8oPH1au7H6B7bBJ4ZO7BXjSZ 317 318 (setq visible-cursor t 319 visible-bell t) 320 321 ;;; The Basics of Emacs Configuration 322 ;;; https://systemcrafters.net/emacs-from-scratch/basics-of-emacs-configuration/ 323 ;;; https://www.youtube.com/watch?v=OaF-N-FuGtc 324 325 (tool-bar-mode -1) 326 (scroll-bar-mode -1) 327 (menu-bar-mode -1) 328 ;; (global-display-line-numbers-mode 1) 329 (hl-line-mode 1) 330 (blink-cursor-mode 1) 331 332 ;;; https://systemcrafters.net/emacs-from-scratch/the-best-default-settings/ 333 ;;; https://www.youtube.com/watch?v=51eSeqcaikM 334 ;;(recentf-mode 1) 335 (setq history-length 25) 336 (savehist-mode 1) 337 (save-place-mode 1)) 338 339 (progn 340 ;;; Load org-roam stuff. 341 342 (defvar kakafarm/org-roam-my-publish-time 0 343 ;; TODO: Write docstring. 344 "TODO" 345 ) 346 347 (setq org-publish-project-alist 348 `(("roam" 349 :base-directory "~/mine/roam/publish/" 350 :auto-sitemap t 351 :sitemap-function kakafarm/org-roam-sitemap 352 :sitemap-title "Roam Notes" 353 :publishing-function kakafarm/org-roam-publication-wrapper 354 :publishing-directory "~/mine/roam-export" 355 :section-number nil 356 :table-of-contents nil 357 :include ,(directory-files "~/mine/roam/publish/" t ".*.org$") 358 :html-head "<link rel=\"stylesheet\" href=\"/index.css\" type=\"text/css\">"))) 359 360 (setq org-roam-graph-link-builder 361 'kakafarm/org-roam-custom-link-builder) 362 363 (add-hook 'org-roam-graph-generation-hook 364 (lambda (dot svg) 365 (if (< (- (cadr (current-time)) 366 kakafarm/org-roam-project-publish-time) 367 5) 368 (progn 369 (copy-file svg 370 "~/mine/roam-export/sitemap.svg" 371 't) 372 (setq kakafarm/org-roam-project-publish-time 373 0)))))) 374 375 (setq gc-cons-threshold (* 200 1024 1024)) 376 (put 'narrow-to-region 'disabled nil) 377 (put 'upcase-region 'disabled nil) 378 (put 'narrow-to-page 'disabled nil)