*Harry's Doom Emacs Config

Harry's Doom Emacs Config

About

← Index

This is a literate Doom Emacs configuration that tangles into the various configuration files that Doom expects. The configuration is split into modular files for better organization:

Module Purpose
ui.org Theme, fonts, modeline, and visual settings
editor.org Evil mode, projectile, and completion settings
shell.org Eshell and terminal emulator configuration
programming.org Language/tooling settings (SQL, PGmacs, JS/TS, Rust, Python, Go, PlantUML)
writing.org Org mode, Org Roam, Markdown, and LaTeX export
tools.org Diff-mode bindings and Mise tool version management
workarounds.org MacOS-specific fixes and quirks

First, enable lexical binding for better performance:

;;; -*- lexical-binding: t; -*-

Build Information

Running on Emacs 30.1 with native compilation on Apple Silicon:

(emacs-version)

Configuration

User Identification

Set the name and email address used by Emacs for things like email composition and source control metadata.

(setq user-full-name "Harry Tucker"
      user-mail-address "tucker.harry@outlook.com")

Load Modules

Load configuration from separate module files. Each module is a literate Org file that tangles into elisp, which org-babel-load-file handles automatically.

(org-babel-load-file (expand-file-name "modules/ui.org" doom-user-dir))
(org-babel-load-file (expand-file-name "modules/editor.org" doom-user-dir))
(org-babel-load-file (expand-file-name "modules/shell.org" doom-user-dir))
(org-babel-load-file (expand-file-name "modules/programming.org" doom-user-dir))
(org-babel-load-file (expand-file-name "modules/writing.org" doom-user-dir))
(org-babel-load-file (expand-file-name "modules/tools.org" doom-user-dir))
(org-babel-load-file (expand-file-name "modules/workarounds.org" doom-user-dir))

Packages

Additional packages from MELPA that aren't exposed through Doom's init.el, imported using the package! macro. Organized by category.

;; -*- no-byte-compile: t; -*-
;;; .doom.d/packages.el

;; Testing - BDD support
(package! feature-mode)

;; Python - docstring editing and syntax highlighting
(package! python-docstring)

;; Protobuf/gRPC - .proto file support
(package! protobuf-mode)

;; Caddy - Caddyfile syntax support
(package! caddyfile-mode)

;; Org Mode extensions
(unpin! org-roam)      ; use latest org-roam
(package! org-roam-ui) ; graph visualization web UI
(package! engrave-faces) ; better syntax highlighting in LaTeX exports

;; PostgreSQL - database browser and client library
(package! pg :recipe (:host github :repo "emarsden/pg-el"))
(package! pgmacs :recipe (:host github :repo "emarsden/pgmacs"))

;; Mise - tool version manager integration
(package! mise)

;; Utilities
(package! command-log-mode) ; display keystrokes in a buffer
(package! prism)            ; scope-based syntax highlighting
(package! flyover)          ; modern flycheck display
(package! eat)              ; terminal emulator for eshell

Exported 2026-08-04 Tue 21:39