Emacs configuration and packages
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
jao 4904bfe53f jao-org-notes: appending to existing notes 17 hours ago
data configuration orgs 4 weeks ago
lib jao-org-notes: appending to existing notes 17 hours ago
.gitignore configuration orgs 4 weeks ago
blog.org blog.org: using the as yet unofficial per-tag RSS generation 2 days ago
consult.org jao-org-notes in lieu of org-roam 18 hours ago
counsel.org configuration orgs 4 weeks ago
exwm.org config nits 5 days ago
gnus.org nits 2 weeks ago
init.org unused packages 18 hours ago
org.org jao-org-notes in lieu of org-roam 18 hours ago
readme.org readme tweaks 2 weeks ago


Emacs configuration and personal packages


This is the emacs standard init file, which will load (maybe tangled) init.org the file, 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 ~/.emacs.d/init.el). However, also note that if literate-elisp is installed, we load instead directly the org file. It's because of that that we start by setting up packages.

Here's the directory where a checkout of this repo live:

  (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/")
               ("org" . "https://orgmode.org/elpa/")))
    (add-to-list 'package-archives a t))


and a tangling helper:

  (defun jao-maybe-tangle (basename)
    (let ((el (expand-file-name (format "%s.el" basename) jao-emacs-dir))
          (org (expand-file-name (format "%s.org" basename) jao-emacs-dir)))
      (when (file-newer-than-file-p org el)
        (require 'ob-tangle)
        (org-babel-tangle-file org el))

Finally, we load either init.org or its tangled version from jao-emacs-dir:

  (if (require 'literate-elisp nil t)
      (literate-elisp-load-file (expand-file-name "init.org" jao-emacs-dir))
    (load-file (jao-maybe-tangle "init")))

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.

  • org.org org mode configuration.

  • consult.org: completion setup using selectrum, consult and friends.

  • counsel.org: completion setup using ivy, counsel and friends.

  • blog.org: blogging using org-static-blog.

  • gnus.org: tangled to gnus.el automatically by init.org, so that it's ready for loading by Gnus.

  • exwm.org: configuration for exwm, loaded when jao-exwmn-enable is called.