<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dotemacs/custom, branch main</title>
<subtitle>My Emacs configuration
</subtitle>
<id>https://git.cjennings.net/dotemacs/atom?h=main</id>
<link rel='self' href='https://git.cjennings.net/dotemacs/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/'/>
<updated>2026-07-11T18:14:56+00:00</updated>
<entry>
<title>refactor: retire unreferenced modules to an archive directory</title>
<updated>2026-07-11T18:14:56+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-07-11T18:14:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=d9897243c88b39109996e67f214ebff63d000742'/>
<id>urn:sha1:d9897243c88b39109996e67f214ebff63d000742</id>
<content type='text'>
A reachability sweep from init.el found eight .el files that nothing in the config loads or references. I moved them under archive/ (off the load-path, still tracked in git) so they stay readable and restorable rather than deleted. archive/README.org records the rule (every .el outside archive/ should be actively used) and why each file was retired.

I retired show-kill-ring, duet-config, and mu4e-org-contacts-setup from modules/, and eplot, profile-dotemacs, titlecase, titlecase-data, and edit-indirect from custom/. Retiring show-kill-ring also removed the orphaned M-K -&gt; M-S-k translation in keyboard-compat, which had left M-K a dead key. Its tests now assert seventeen translations and guard M-K's absence.
</content>
</entry>
<entry>
<title>docs: finish the commentary/comment audit tail</title>
<updated>2026-06-28T10:54:37+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-06-28T10:54:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=2a8d33446d8e135483a2a3583d2a47aff580c4a8'/>
<id>urn:sha1:2a8d33446d8e135483a2a3583d2a47aff580c4a8</id>
<content type='text'>
Condensed early-init's debug-flags note and added a why for the deferred global-font-lock, rewrote three vcf-conversion-helpers comments to name the real intent (keeping the reverse-order-to-preserve-positions rationale), and gave the archived testutil-filesystem a real summary while deleting its line-by-line narration comments.
</content>
</entry>
<entry>
<title>chore: delete unused c-boxes.el</title>
<updated>2026-06-28T10:32:44+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-06-28T10:32:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=13b3050434e349c2f3d1a33834ae139a36fb1865'/>
<id>urn:sha1:13b3050434e349c2f3d1a33834ae139a36fb1865</id>
<content type='text'>
Dead vendored code for reboxing C block comments (1991). Nothing requires or loads it, it has no provide footer, and none of its commands are bound or called. Removing the orphan.
</content>
</entry>
<entry>
<title>docs: normalize generated-file headers and prune obvious comments</title>
<updated>2026-06-28T08:00:48+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-06-28T08:00:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=b8c0c5f2b1882a2a3eaf36aa78e0b2b0afad6cfc'/>
<id>urn:sha1:b8c0c5f2b1882a2a3eaf36aa78e0b2b0afad6cfc</id>
<content type='text'>
The theme-studio and browser-choice generators now stamp their output with a header that names the authoritative source and says to regenerate rather than hand-edit. I regenerated both files to match. I also deleted six obvious "describe the next form" comments, replaced two stale placeholders in titlecase.el and an incomplete FIXME in org-checklist.el with real rationale, and condensed early-init's header and Commentary.
</content>
</entry>
<entry>
<title>docs: condense module commentaries to the terse header contract</title>
<updated>2026-06-28T07:39:46+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-06-28T07:39:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=f3baaffa5126ece216f698f5296288208c22c64b'/>
<id>urn:sha1:f3baaffa5126ece216f698f5296288208c22c64b</id>
<content type='text'>
22 module headers carried long user-manual commentaries (quick-starts, keybinding matrices, setup walkthroughs) that belong in user docs, not source. Each now states the purpose, load contract, and entry points tersely. ai-term also drops its stale F9 keybinding references (the scheme is C-; a plus M-SPC now) and a header line claiming a vertical-split that's really host-aware.
</content>
</entry>
<entry>
<title>chore(ai): archive gptel and remove it from the live config</title>
<updated>2026-06-24T00:12:58+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-06-24T00:12:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=10fa6f4e2e7150ad99827721ada1ae4badcc5e90'/>
<id>urn:sha1:10fa6f4e2e7150ad99827721ada1ae4badcc5e90</id>
<content type='text'>
I archived gptel to archive/gptel/ since I rarely use it. Moved there: the six gptel modules (ai-config, ai-conversations, ai-conversations-browser, ai-mcp, ai-quick-ask, ai-rewrite), the gptel-tools/ directory, custom/gptel-prompts.el, their test files and utilities, and the four gptel-only specs.

Scrubbed from the live config: the ai-config require in init.el, which also drops the whole C-; a keymap; the gptel-mode emojify hook in font-config.el; the gptel-tools entries in the Makefile clean target and the coverage runner; and the gptel feature notes in README. Cancelled the open gptel tasks in todo.org (the AI Open Work issues, the feature-extension brainstorm, the velox gptel-magit bug).

ai-term stays. It is the ghostel Claude launcher, independent of gptel.

Verified: every module loads, a batch init launch reaches completion clean, and the full test suite shows only pre-existing coverage failures unrelated to this change.
</content>
</entry>
<entry>
<title>chore: drop stale custom pdf-continuous-scroll files + dead use-package</title>
<updated>2026-05-16T17:12:48+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-05-16T17:12:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=3fd6f8a3c04dc9fb5ffcdf4c877184d2a8494cb6'/>
<id>urn:sha1:3fd6f8a3c04dc9fb5ffcdf4c877184d2a8494cb6</id>
<content type='text'>
Removes custom/pdf-continuous-scroll-mode.el and the -latest.el variant
along with the commented-out use-package block that referenced them.
Two stale copies sat in custom/ unused.  pdf-continuous-scroll-mode is
intentionally not enabled because of a known bad interaction with
org-noter.  If that decision changes, the package can be added back
through normal use-package + ELPA channels.
</content>
</entry>
<entry>
<title>changing repositories</title>
<updated>2025-10-12T16:47:26+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2025-10-12T16:47:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=0ac4c720098804310a38d33737f0a7b4072d0156'/>
<id>urn:sha1:0ac4c720098804310a38d33737f0a7b4072d0156</id>
<content type='text'>
</content>
</entry>
</feed>
