#+title: dotemacs This repository contains Craig Jennings' modular Emacs configuration. It is mirrored at [[https://git.cjennings.net/dotemacs.git][git.cjennings.net]]. * Structure - *early-init.el* – minimal bootstrap settings loaded before package auto-initialisation. - *init.el* – orchestrates configuration by loading modules. - *modules/* – the bulk of the configuration, split into focused modules (Org, programming languages, UI, etc.). - *custom/* and *assets/* – supporting files, personal data, and extra utilities. - *themes/* – custom theme tweaks. - *scripts/* – helper scripts for maintaining this setup. - *tests/* – ERT tests for many helper functions. * Highlights - *Custom helpers* – over *33* ~cj/~ prefixed functions collected in ~modules/custom-functions.el~, bound under a personal ~C-;~ keymap for quick action on text and files. - *Flyspell & Abbrev* – ~flyspell-and-abbrev.el~ coordinates flyspell with abbrev so every correction can automatically become an expansion. - *E-book and PDF integration* – ~calibredb~ manages the library, ~nov~ reads EPUBs with custom rendering, and ~pdf-tools~ provides a feature rich PDF viewer (with quick hand-off to external viewers when needed). - *Org-roam workflow* – daily journals and templated project/topic/recipe notes, helper commands to find nodes by tag, capture tasks straight into projects, and automatically copy completed TODOs to the day’s journal. - *Org-drill & capture* – flashcard sessions via ~C-d~ bindings and capture templates that pull content from the web, EPUBs, or PDFs for spaced repetition. - *Org webpage clipper* – ~cj/org-webpage-clipper~ saves a rendered copy of the current page from EWW or W3M directly into an Org file. - *Org-agenda setup* – ~F8~ opens a custom agenda showing high priority tasks, the schedule, and remaining work; additional commands build task lists from all agenda files or just the current buffer. - *Dirvish* – replaces Dired with a modern file manager offering quick access shortcuts, external open commands, image conversion, and more. - *Programmer tools* – relative line numbers, project management with Projectile, ripgrep searching, Yasnippet snippets, symbol overlays, rainbow colors, Tree-sitter, LSP, and other language-specific modules. * Misc The configuration is tested with ERT; see the ~tests/~ directory for examples of how functions are exercised.