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:
Madeleine Sydney
2025-01-06 06:47:19 -07:00
parent 1aee1366c2
commit bfd271125e
4 changed files with 46 additions and 27 deletions

View 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))

View File

@@ -1,32 +1,11 @@
;; -*- 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
(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))
(add-to-list 'load-path (file-name-concat user-emacs-directory "modules"))
(setq straight-use-package-by-default t)
(use-package evil
:init
(setq evil-want-minibuffer t)
:config
(evil-mode 1))
(use-package which-key
:config
(which-key-mode 1))
(require 'syd-evil)
(require 'syd-ui)

View 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)

View File

@@ -0,0 +1,7 @@
;;; syd-ui.el -*- lexical-binding: t; -*-
(use-package which-key
:config
(which-key-mode 1))
(provide 'syd-ui)