dotfiles

A steaming hot pile of sh...ell scripts and configuration files.
git clone https://kaka.farm/~git/dotfiles
Log | Files | Refs

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)