Emacs configuration and personal packages
This is the emacs standard init file, which will load (maybe
tangled) the file init.org, checking first whether a fresh tangle is
needed. Note that the rest of elisp tangling in init.org goes to a
different file (namely, the one that is loaded by
However, also note that if literate-elisp is installed, we load instead the org file, directly. It's because of that that we start by setting up packages. A drawback of literate-elisp is that it only knows how to load with lexical binding set to nil, so i tend to prefer just loading tangled .el files. The packages org-auto-tangle (to asyncronously generate those files) and embark (to easily navigate between the two flavours) come in handy in that scenario.
Here's the directory where a checkout of this repo lives:
(defvar jao-emacs-dir (expand-file-name "~/etc/emacs"))
followed by package.el's initialisation:
(setq package-user-dir (expand-file-name (format "~/.emacs.d/elpa.%s" emacs-major-version)) package-check-signature 'allow-unsigned) (require 'package) (dolist (a '(("melpa" . "https://melpa.org/packages/") ("gnu-devel" . "https://elpa.gnu.org/devel/"))) (add-to-list 'package-archives a t)) (setf (alist-get "gnu" package-archives nil t #'string=) nil) (package-initialize)
and a tangling helper:
(require 'org) (defun jao-load-org (file) (let ((file (concat (file-name-sans-extension file) ".org"))) (org-babel-load-file (expand-file-name file jao-emacs-dir))))
Finally, we load either init.org or its tangled version from
You can tangle this readme to generate the minimal init.el file above.
Configuration as a set of literate files
- init.org: main configuration as a literate org file; it uses (besides lots of packages), many of my libraries in lib, and loads on demand the other org files below.
- completion.org: completion setup using corfu, vertico, consult and friends.
- org.org org mode configuration.
- blog.org: blogging using org-static-blog.
- email.org: email handling in emacs.
- gnus.org: email using gnus.
- notmuch.org: email using notmuch.
- eww.org: browsing with eww.
- exwm.org: configuration for exwm, loaded when