Single-branch modular design. No more separate branches for different setups—just toggle modules in init.el.
Post-install:
- Launch Emacs (packages auto-install)
M-x all-the-icons-install-fonts- Restart
~/.emacs.d/
├── init.el # Toggle modules here
└── modules/
├── mod-ui.el # Theme, dashboard, modeline
├── mod-completion.el # Vertico, Corfu, snippets
├── mod-navigation.el # Neotree, auto-save
├── mod-lsp.el # Full LSP with flycheck
├── mod-eglot.el # Lightweight LSP alternative
├── mod-web.el # JS/TS/HTML/CSS/JSON
└── mod-clojure.el # Clojure + CIDER
- mod-ui: Solarized theme, dashboard, mood-line, vim-tab-bar
- mod-completion: Vertico (minibuffer), Corfu (in-buffer), yasnippet
- mod-navigation: Neotree file tree (
C-x n), super-save
- mod-lsp: Full-featured, best for large projects, includes lsp-booster
- mod-eglot: Lightweight, fast startup, uses built-in Emacs features
- mod-web: JS/TS/HTML/CSS + Prettier + Emmet (
TABfor expansion) - mod-clojure: Clojure/ClojureScript + CIDER REPL + paredit + clj-refactor
Edit init.el:
;; Choose LSP backend
(require 'mod-lsp) ; or
;; (require 'mod-eglot)
;; Enable languages you need
(require 'mod-web)
(require 'mod-clojure)If using eglot, update hooks in mod-web.el:
;; Change from:
:hook (js2-mode . lsp-deferred)
;; To:
:hook (js2-mode . eglot-ensure)Navigation:
C-x n- Open neotree
LSP (with mod-lsp):
M-.- Peek definitionM-?- Peek references
Clojure CIDER:
C-c C-k- Load bufferC-c C-e- Eval expressionC-c C-d- DocumentationC-c M-n M-r- Refresh namespace
Emmet (web-mode):
TAB- Expand abbreviation (e.g.,div.class→<div class="class"></div>)
Change theme:
;; In mod-ui.el
(load-theme 'modus-vivendi-deuteranopia t)Disable modules:
Comment out in init.el:
;; (require 'mod-clojure) ; Clojure disabledAdd your own module:
;; ~/.emacs.d/modules/mod-custom.el
(provide 'mod-custom)
;; In init.el
(require 'mod-custom)Old workflow:
git checkout lsp-branch # For LSP
git checkout clojure-branch # For ClojureNew workflow:
;; Edit init.el once
(require 'mod-lsp) ; Enable LSP
(require 'mod-clojure) ; Enable ClojureAll features available in one branch. No more branch management.
Package install errors:
M-x package-refresh-contents- Restart Emacs
LSP not starting:
- Check if language server installed (e.g.,
typescript-language-serverfor TS) M-x lsp-install-serverorM-x eglot-ensure
Icons not showing:
M-x all-the-icons-install-fonts- Restart Emacs
Optional external tools:
emacs-lsp-booster- LSP performance boost- Language servers (auto-prompted on first use):
typescript-language-server(JS/TS)vscode-css-language-server(CSS)vscode-html-language-server(HTML)clojure-lsp(Clojure)
GNU General Public License v3.0