Compare commits

..

4 Commits

Author SHA1 Message Date
5045c5e5e9 Remove deprecated config 2026-04-20 13:57:41 -07:00
8ccb91103a Startup time optimizations 2026-04-20 13:57:31 -07:00
b0aed42312 Flake update 2026-03-26 16:21:45 -07:00
b2be7f9a76 Update Elpaca 2026-03-26 16:21:24 -07:00
2 changed files with 46 additions and 54 deletions

View File

@@ -6,42 +6,42 @@
(setq custom-file (locate-user-emacs-file "custom-vars.el")) (setq custom-file (locate-user-emacs-file "custom-vars.el"))
;;; Elpaca package manager ;;; Elpaca package manager
(defvar elpaca-installer-version 0.11) (defvar elpaca-installer-version 0.12)
(defvar elpaca-directory (expand-file-name "elpaca/" user-emacs-directory)) (defvar elpaca-directory (expand-file-name "elpaca/" user-emacs-directory))
(defvar elpaca-builds-directory (expand-file-name "builds/" elpaca-directory)) (defvar elpaca-builds-directory (expand-file-name "builds/" elpaca-directory))
(defvar elpaca-repos-directory (expand-file-name "repos/" elpaca-directory)) (defvar elpaca-sources-directory (expand-file-name "sources/" elpaca-directory))
(defvar elpaca-order '(elpaca :repo "https://github.com/progfolio/elpaca.git" (defvar elpaca-order '(elpaca :repo "https://github.com/progfolio/elpaca.git"
:ref nil :depth 1 :ref nil :depth 1 :inherit ignore
:files (:defaults "elpaca-test.el" (:exclude "extensions")) :files (:defaults "elpaca-test.el" (:exclude "extensions"))
:build (:not elpaca--activate-package))) :build (:not elpaca-activate)))
(let* ((repo (expand-file-name "elpaca/" elpaca-repos-directory)) (let* ((repo (expand-file-name "elpaca/" elpaca-sources-directory))
(build (expand-file-name "elpaca/" elpaca-builds-directory)) (build (expand-file-name "elpaca/" elpaca-builds-directory))
(order (cdr elpaca-order)) (order (cdr elpaca-order))
(default-directory repo)) (default-directory repo))
(add-to-list 'load-path (if (file-exists-p build) build repo)) (add-to-list 'load-path (if (file-exists-p build) build repo))
(unless (file-exists-p repo) (unless (file-exists-p repo)
(make-directory repo t) (make-directory repo t)
(when (< emacs-major-version 28) (require 'subr-x)) (when (<= emacs-major-version 28) (require 'subr-x))
(condition-case-unless-debug err (condition-case-unless-debug err
(if-let ((buffer (pop-to-buffer-same-window "*elpaca-bootstrap*")) (if-let* ((buffer (pop-to-buffer-same-window "*elpaca-bootstrap*"))
((zerop (apply #'call-process `("git" nil ,buffer t "clone" ((zerop (apply #'call-process `("git" nil ,buffer t "clone"
,@(when-let ((depth (plist-get order :depth))) ,@(when-let* ((depth (plist-get order :depth)))
(list (format "--depth=%d" depth) "--no-single-branch")) (list (format "--depth=%d" depth) "--no-single-branch"))
,(plist-get order :repo) ,repo)))) ,(plist-get order :repo) ,repo))))
((zerop (call-process "git" nil buffer t "checkout" ((zerop (call-process "git" nil buffer t "checkout"
(or (plist-get order :ref) "--")))) (or (plist-get order :ref) "--"))))
(emacs (concat invocation-directory invocation-name)) (emacs (concat invocation-directory invocation-name))
((zerop (call-process emacs nil buffer nil "-Q" "-L" "." "--batch" ((zerop (call-process emacs nil buffer nil "-Q" "-L" "." "--batch"
"--eval" "(byte-recompile-directory \".\" 0 'force)"))) "--eval" "(byte-recompile-directory \".\" 0 'force)")))
((require 'elpaca)) ((require 'elpaca))
((elpaca-generate-autoloads "elpaca" repo))) ((elpaca-generate-autoloads "elpaca" repo)))
(progn (message "%s" (buffer-string)) (kill-buffer buffer)) (progn (message "%s" (buffer-string)) (kill-buffer buffer))
(error "%s" (with-current-buffer buffer (buffer-string)))) (error "%s" (with-current-buffer buffer (buffer-string))))
((error) (warn "%s" err) (delete-directory repo 'recursive)))) ((error) (warn "%s" err) (delete-directory repo 'recursive))))
(unless (require 'elpaca-autoloads nil t) (unless (require 'elpaca-autoloads nil t)
(require 'elpaca) (require 'elpaca)
(elpaca-generate-autoloads "elpaca" repo) (elpaca-generate-autoloads "elpaca" repo)
(load "./elpaca-autoloads"))) (let ((load-source-file-function nil)) (load "./elpaca-autoloads"))))
(add-hook 'after-init-hook #'elpaca-process-queues) (add-hook 'after-init-hook #'elpaca-process-queues)
(elpaca `(,@elpaca-order)) (elpaca `(,@elpaca-order))
@@ -51,16 +51,16 @@
;; Magit depends on newer versions of seq/transient than Emacs bundles, but Elpaca ;; Magit depends on newer versions of seq/transient than Emacs bundles, but Elpaca
;; can't or won't update them on its own. ;; can't or won't update them on its own.
(defun +elpaca-unload-seq (e) ;; (defun +elpaca-unload-seq (e)
(and (featurep 'seq) (unload-feature 'seq t)) ;; (and (featurep 'seq) (unload-feature 'seq t))
(elpaca--continue-build e)) ;; (elpaca--continue-build e))
(defun +elpaca-seq-build-steps () ;; (defun +elpaca-seq-build-steps ()
(append (butlast (if (file-exists-p (expand-file-name "seq" elpaca-builds-directory)) ;; (append (butlast (if (file-exists-p (expand-file-name "seq" elpaca-builds-directory))
elpaca--pre-built-steps elpaca-build-steps)) ;; elpaca--pre-built-steps elpaca-build-steps))
(list '+elpaca-unload-seq 'elpaca--activate-package))) ;; (list '+elpaca-unload-seq 'elpaca--activate-package)))
(use-package seq :ensure `(seq :build ,(+elpaca-seq-build-steps))) ;; (use-package seq :ensure `(seq :build ,(+elpaca-seq-build-steps)))
(use-package transient :ensure t) (use-package transient :ensure t)
;; Required for magit, but Elpaca seems unable to find it by default ;; Required for magit, but Elpaca seems unable to find it by default
@@ -285,7 +285,10 @@ EMACS-ALTERNATIVE is the Emacs equivalent (e.g., 'C-s')."
;;;; Jinx ;;;; Jinx
(use-package jinx (use-package jinx
:ensure t
:hook (emacs-startup . global-jinx-mode) :hook (emacs-startup . global-jinx-mode)
:custom
(jinx-modes '(text-mode))
:bind ([remap transpose-chars] . jinx-correct)) :bind ([remap transpose-chars] . jinx-correct))
;;; Completion ;;; Completion
@@ -366,10 +369,7 @@ EMACS-ALTERNATIVE is the Emacs equivalent (e.g., 'C-s')."
consult-theme consult-xref consult-bookmark consult-theme consult-xref consult-bookmark
consult-ripgrep consult-git-grep consult-grep consult-ripgrep consult-git-grep consult-grep
:preview-key '(:debounce 0.4 any) :preview-key '(:debounce 0.4 any)
consult-recent-file consult-buffer consult-recent-file consult-buffer
consult--source-bookmark consult--source-recent-file
consult--source-project-recent-file
:preview-key "C-.")) :preview-key "C-."))
(use-package consult-dir (use-package consult-dir
@@ -765,10 +765,14 @@ EMACS-ALTERNATIVE is the Emacs equivalent (e.g., 'C-s')."
(use-package org-bullets (use-package org-bullets
:ensure t :ensure t
:config :config
(add-hook 'org-mode-hook (lambda () (org-bullets-mode 1))) (add-hook 'org-mode-hook (lambda () (org-bullets-mode 1))))
;; Eagerly load org-mode
(with-temp-buffer ;; Preload org-mode (and warm up text-mode hooks like jinx) after
(org-mode))) ;; packages are available on the load-path
(add-hook 'emacs-startup-hook
(lambda ()
(with-temp-buffer
(org-mode))))
(defun my/org-clear-all () (defun my/org-clear-all ()
(interactive) (interactive)
@@ -853,9 +857,9 @@ EMACS-ALTERNATIVE is the Emacs equivalent (e.g., 'C-s')."
:ensure t :ensure t
:custom :custom
(treesit-auto-install 'prompt) (treesit-auto-install 'prompt)
:hook (prog-mode . treesit-auto-mode)
:config :config
(treesit-auto-add-to-auto-mode-alist 'all) (treesit-auto-add-to-auto-mode-alist 'all))
(global-treesit-auto-mode))
;;;; Markdown ;;;; Markdown
(use-package markdown-mode (use-package markdown-mode
@@ -960,18 +964,6 @@ EMACS-ALTERNATIVE is the Emacs equivalent (e.g., 'C-s')."
:custom :custom
(lsp-ui-sideline-show-diagnostics nil)) (lsp-ui-sideline-show-diagnostics nil))
;;;; Flycheck
(use-package flycheck
:ensure t
:init
(setq flycheck-keymap-prefix (kbd "C-c e"))
(global-flycheck-mode)
;; Elisp lint errors are annoying, so disable flycheck in elisp modes
:hook (emacs-lisp-mode . (lambda () (flycheck-mode -1)))
:bind (:repeat-map flycheck-repeat-map
("n" . flycheck-next-error)
("p" . flycheck-previous-error)))
;;;; Nix ;;;; Nix
(use-package nix-mode (use-package nix-mode
:ensure t :ensure t

12
nix/flake.lock generated
View File

@@ -27,11 +27,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1759702766, "lastModified": 1773093840,
"narHash": "sha256-011pCUbIq/fhCiZ20AzqJYNjLzQ1oYkzYEgzcUYVTBg=", "narHash": "sha256-u/96NoAyN8BSRuM3ZimGf7vyYgXa3pLx4MYWjokuoH4=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "5b45dcf4790bb94fec7e550d2915fc2540a3cdd6", "rev": "bb014746edb2a98d975abde4dd40fa240de4cf86",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -42,11 +42,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1759632233, "lastModified": 1772956932,
"narHash": "sha256-krgZxGAIIIKFJS+UB0l8do3sYUDWJc75M72tepmVMzE=", "narHash": "sha256-M0yS4AafhKxPPmOHGqIV0iKxgNO8bHDWdl1kOwGBwRY=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "d7f52a7a640bc54c7bb414cca603835bf8dd4b10", "rev": "608d0cadfed240589a7eea422407a547ad626a14",
"type": "github" "type": "github"
}, },
"original": { "original": {