wip: refactor: Break init.el into modules
Currently, we will just throw everything into modules/ and require it. As the Emacs config grows in complexity, we can make the minor improvement to require everything under glob modules/*.el without explicitly naming each feature. Further, one could easily imagine a module system with conditionals and flags à la Doom.
This commit is contained in:
24
users/crumb/programs/emacs/init-straight.el
Normal file
24
users/crumb/programs/emacs/init-straight.el
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
;;; init-straight.el -*- lexical-binding: t; -*-
|
||||||
|
|
||||||
|
;; Bootstrap Straight.el
|
||||||
|
(defun syd-initialise-straight ()
|
||||||
|
(defvar bootstrap-version)
|
||||||
|
|
||||||
|
(setq straight-base-dir
|
||||||
|
(or (getenv "EMACS_STRAIGHT_BASE_DIR")
|
||||||
|
(error "Cannot initialise straight: $EMACS_STRAIGHT_BASE_DIR is undefined!")))
|
||||||
|
|
||||||
|
(let ((bootstrap-file
|
||||||
|
(file-name-concat straight-base-dir
|
||||||
|
"repos/straight.el/bootstrap.el"))
|
||||||
|
(bootstrap-version 7))
|
||||||
|
(unless (file-exists-p bootstrap-file)
|
||||||
|
(let* ((url "https://raw.githubusercontent.com/radian-software/straight.el/develop/install.el")
|
||||||
|
(url-buffer (url-retrieve-synchronously
|
||||||
|
url 'silent 'inhibit-cookies)))
|
||||||
|
(with-current-buffer url-buffer
|
||||||
|
(goto-char (point-max))
|
||||||
|
(eval-print-last-sexp))))
|
||||||
|
(load bootstrap-file nil 'nomessage))
|
||||||
|
|
||||||
|
(setq straight-use-package-by-default t))
|
||||||
@@ -1,32 +1,11 @@
|
|||||||
;; -*- lexical-binding: t; -*-
|
;; -*- lexical-binding: t; -*-
|
||||||
|
|
||||||
(defvar bootstrap-version)
|
(load (locate-user-emacs-file "init-straight"))
|
||||||
|
(syd-initialise-straight)
|
||||||
|
|
||||||
(setq straight-base-dir
|
|
||||||
(or (getenv "EMACS_STRAIGHT_BASE_DIR")
|
|
||||||
(error "Cannot initialise straight: $EMACS_STRAIGHT_BASE_DIR is undefined!")))
|
|
||||||
|
|
||||||
(let ((bootstrap-file
|
(add-to-list 'load-path (file-name-concat user-emacs-directory "modules"))
|
||||||
(file-name-concat straight-base-dir
|
|
||||||
"repos/straight.el/bootstrap.el"))
|
|
||||||
(bootstrap-version 7))
|
|
||||||
(unless (file-exists-p bootstrap-file)
|
|
||||||
(let* ((url "https://raw.githubusercontent.com/radian-software/straight.el/develop/install.el")
|
|
||||||
(url-buffer (url-retrieve-synchronously
|
|
||||||
url 'silent 'inhibit-cookies)))
|
|
||||||
(with-current-buffer url-buffer
|
|
||||||
(goto-char (point-max))
|
|
||||||
(eval-print-last-sexp))))
|
|
||||||
(load bootstrap-file nil 'nomessage))
|
|
||||||
|
|
||||||
(setq straight-use-package-by-default t)
|
(require 'syd-evil)
|
||||||
|
(require 'syd-ui)
|
||||||
(use-package evil
|
|
||||||
:init
|
|
||||||
(setq evil-want-minibuffer t)
|
|
||||||
:config
|
|
||||||
(evil-mode 1))
|
|
||||||
|
|
||||||
(use-package which-key
|
|
||||||
:config
|
|
||||||
(which-key-mode 1))
|
|
||||||
|
|||||||
9
users/crumb/programs/emacs/modules/syd-evil.el
Normal file
9
users/crumb/programs/emacs/modules/syd-evil.el
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
;;; syd-evil.el -*- lexical-binding: t; -*-
|
||||||
|
|
||||||
|
(use-package evil
|
||||||
|
:init
|
||||||
|
(setq evil-want-minibuffer t)
|
||||||
|
:config
|
||||||
|
(evil-mode 1))
|
||||||
|
|
||||||
|
(provide 'syd-evil)
|
||||||
7
users/crumb/programs/emacs/modules/syd-ui.el
Normal file
7
users/crumb/programs/emacs/modules/syd-ui.el
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
;;; syd-ui.el -*- lexical-binding: t; -*-
|
||||||
|
|
||||||
|
(use-package which-key
|
||||||
|
:config
|
||||||
|
(which-key-mode 1))
|
||||||
|
|
||||||
|
(provide 'syd-ui)
|
||||||
Reference in New Issue
Block a user