summaryrefslogtreecommitdiff
path: root/emacs/.config/emacs/init.el
blob: ddc40f1c27ee73ca6be632c6121e41760352ddc8 (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
;;; -*- lexical-binding: t; -*-

;; NixOS emacs doesn't include a build time. Assume a recent version.
(setq elpaca-core-date 20240101)
(setq elpaca-directory "~/.cache/emacs/elpaca")
(load-file (expand-file-name "elpaca-installer.el" user-emacs-directory))

(add-hook 'emacs-startup-hook
          (lambda ()
            (message "Emacs ready in %s with %d garbage collections."
                     (format "%.2f seconds"
                             (float-time
                              (time-subtract after-init-time before-init-time)))
                     gcs-done)))

(add-hook 'elpaca-after-init-hook 'kj/restore-file-name-handler-alist)

(elpaca elpaca-use-package
  ;; Enable :elpaca use-package keyword.
  (elpaca-use-package-mode)
  ;; Assume :elpaca t unless otherwise specified.
  (setq elpaca-use-package-by-default t))
(elpaca-wait)

(use-package gcmh
  :hook
  (elpaca-after-init . kj/enable-gcmh)
  :config
  (defun kj/enable-gcmh ()
                         (message "Enabling gcmh")
                         (gcmh-mode 1)))

;; Include user configuration.
(defvar kj/module-directory (expand-file-name "lisp" user-emacs-directory))
(push kj/module-directory load-path)
(require 'kj-lib)
(require 'kj-init)
(cl-loop for path in (directory-files kj/module-directory)
         if (string-match "\\([^/]*\\).el" path)
         do (require (intern (match-string-no-properties 1 path))))