summaryrefslogtreecommitdiff
path: root/README.md
blob: 1bde291ff0b8bcf9c1ad8929fe141484bdb8fa85 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# dotemacs

This repository contains Craig Jennings' modular Emacs configuration.  It is
mirrored at [git.cjennings.net](https://git.cjennings.net/dotemacs.git).

## 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.