dot-emacs

My emacs dotfiles/config
git clone git://git.ethandl.dev/dot-emacs
Log | Files | Refs

init.el (3728B)


      1 ;; elpaca build date, CHANGE EVERY BUILD
      2 (setq elpaca-core-date '(20250616))
      3 
      4 ;; Start elpaca bootstrap
      5 (defvar elpaca-installer-version 0.11)
      6 (defvar elpaca-directory (expand-file-name "elpaca/" user-emacs-directory))
      7 (defvar elpaca-builds-directory (expand-file-name "builds/" elpaca-directory))
      8 (defvar elpaca-repos-directory (expand-file-name "repos/" elpaca-directory))
      9 (defvar elpaca-order '(elpaca :repo "https://github.com/progfolio/elpaca.git"
     10                               :ref nil :depth 1 :inherit ignore
     11                               :files (:defaults "elpaca-test.el" (:exclude "extensions"))
     12                               :build (:not elpaca--activate-package)))
     13 (let* ((repo  (expand-file-name "elpaca/" elpaca-repos-directory))
     14        (build (expand-file-name "elpaca/" elpaca-builds-directory))
     15        (order (cdr elpaca-order))
     16        (default-directory repo))
     17   (add-to-list 'load-path (if (file-exists-p build) build repo))
     18   (unless (file-exists-p repo)
     19     (make-directory repo t)
     20     (when (<= emacs-major-version 28) (require 'subr-x))
     21     (condition-case-unless-debug err
     22         (if-let* ((buffer (pop-to-buffer-same-window "*elpaca-bootstrap*"))
     23                   ((zerop (apply #'call-process `("git" nil ,buffer t "clone"
     24                                                   ,@(when-let* ((depth (plist-get order :depth)))
     25                                                       (list (format "--depth=%d" depth) "--no-single-branch"))
     26                                                   ,(plist-get order :repo) ,repo))))
     27                   ((zerop (call-process "git" nil buffer t "checkout"
     28                                         (or (plist-get order :ref) "--"))))
     29                   (emacs (concat invocation-directory invocation-name))
     30                   ((zerop (call-process emacs nil buffer nil "-Q" "-L" "." "--batch"
     31                                         "--eval" "(byte-recompile-directory \".\" 0 'force)")))
     32                   ((require 'elpaca))
     33                   ((elpaca-generate-autoloads "elpaca" repo)))
     34             (progn (message "%s" (buffer-string)) (kill-buffer buffer))
     35           (error "%s" (with-current-buffer buffer (buffer-string))))
     36       ((error) (warn "%s" err) (delete-directory repo 'recursive))))
     37   (unless (require 'elpaca-autoloads nil t)
     38     (require 'elpaca)
     39     (elpaca-generate-autoloads "elpaca" repo)
     40     (let ((load-source-file-function nil)) (load "./elpaca-autoloads"))))
     41 (add-hook 'after-init-hook #'elpaca-process-queues)
     42 (elpaca `(,@elpaca-order))
     43 ;; End elpaca bootstrap
     44 
     45 ;; Install use-package support
     46 (elpaca elpaca-use-package
     47   ;; Enable :elpaca use-package keyword.
     48   (elpaca-use-package-mode)
     49   ;; Assume :elpaca t unless otherwise specified.
     50   (setq elpaca-use-package-by-default t))
     51 
     52 (elpaca-wait)
     53 
     54 ;; Install a more up-to-date version of org
     55 ;; (use-package org
     56 ;;   :defer
     57 ;;   :ensure `(org :repo "https://code.tecosaur.net/tec/org-mode.git/"
     58 ;;                 :branch "dev")
     59 ;;   :hook
     60 ;;   (org-mode . org-latex-preview-auto-mode)
     61 ;;   :config
     62 ;;   ;; Ensure that live previews are on
     63 ;;   (setq org-latex-preview-live t)
     64 ;;   (setq org-latex-preview-live-debounce 0.25))
     65 (use-package org)
     66 ;; There are many reasons you might want to do this, but the git version is quite unstable as well
     67 
     68 ;; We then need to wait for the download of org to complete before we can use org.
     69 (elpaca-wait)
     70 
     71 (setq ethandl/config-fname (expand-file-name "config.org" user-emacs-directory))
     72 (when (file-readable-p ethandl/config-fname)
     73   (org-babel-load-file ethandl/config-fname))
     74 
     75 ;; Emacs crap that it does automatically:
     76 (setq ethandl/custom-file (expand-file-name "custom.el" user-emacs-directory))
     77 (setq custom-file ethandl/custom-file)
     78 (load custom-file)