<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dotemacs/modules/chrono-tools.el, branch load-graph-classify-start</title>
<subtitle>My Emacs configuration
</subtitle>
<id>https://git.cjennings.net/dotemacs/atom?h=load-graph-classify-start</id>
<link rel='self' href='https://git.cjennings.net/dotemacs/atom?h=load-graph-classify-start'/>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/'/>
<updated>2026-05-16T17:20:44+00:00</updated>
<entry>
<title>refactor: consolidate runtime state into persist/</title>
<updated>2026-05-16T17:20:44+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-05-16T17:20:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=43022b56569717f28fa16284f7092f2bbe0830ad'/>
<id>urn:sha1:43022b56569717f28fa16284f7092f2bbe0830ad</id>
<content type='text'>
Six previously-scattered runtime state files now live under persist/
in user-emacs-directory:

- theme-file (was .emacs-theme)
- pdf-view-restore-filename (was .pdf-view-restore)
- time-zones--city-list-file (was .time-zones.el)
- calendar-sync--state-file (was data/calendar-sync-state.el)
- prescient-save-file (was var/prescient-save.el)
- org-id-locations-file (was .org-id-locations)

The defaults in each module now expand to persist/&lt;name&gt; instead of
the user-emacs-directory root or ad-hoc subdirs.  Existing files
moved into persist/ alongside this change so the next launch picks
up the state without regenerating.

test-ui-theme-default-theme-file-is-emacs-dotfile renamed to
test-ui-theme-default-theme-file-is-under-persist and updated to
assert the new default path.

lsp-session-file is left at the root for now -- prog-lsp.el has no
(require) reference anywhere, so the use-package block that would
carry the redirect never runs.  Tier 3 follow-up: confirm the module
is dead, then delete it or wire it into the load chain.

The var/ directory is now empty and removed.  data/ retains the
calendar agenda content (dcal/gcal/pcal.org) and the .rest API
examples -- content, not state, stays where it is.
</content>
</entry>
<entry>
<title>refactor(foundation): hygiene pass across early-init, user-constants, system-defaults, chrono-tools</title>
<updated>2026-05-16T07:35:38+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-05-16T07:35:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=1c5a2ebab7c721d795ed9331afdb305fd683e172'/>
<id>urn:sha1:1c5a2ebab7c721d795ed9331afdb305fd683e172</id>
<content type='text'>
Six small fixes the 2026-05-15 module-by-module re-review surfaced:

- Consolidate `user-home-dir` -- canonical defconst stays in
  early-init.el (package-archive bootstrap needs it before normal
  modules load); user-constants.el switches to a `defvar` with the
  identical `(getenv "HOME")` expression so the module still loads /
  byte-compiles standalone, but at runtime early-init's defconst
  wins.
- Drop the redundant `(autoload 'env-bsd-p ...)` line in
  system-defaults.el.  The `(eval-when-compile (require
  'host-environment))` already exposes the symbol to the byte
  compiler, and at runtime host-environment is loaded earlier in
  init.el.  Added a comment documenting the boundary.
- Convert `cj/debug-modules` and `cj/use-online-repos` from `defvar`
  to `defcustom`, with `:type`, `:group 'cj`, and a top-level
  `(defgroup cj ...)` so both show up in M-x customize.
- Name the package-archive priorities in early-init.el.  Nine new
  defconsts replace the magic numbers (200 / 125 / 120 / 115 / 100 /
  25 / 20 / 15 / 5) with one constant each, plus a header comment
  explaining the local-first ordering and the gnu &gt; nongnu &gt; melpa &gt;
  melpa-stable trust ranking within each tier.
- Delete the 19-line commented-out `use-package time` world-clock
  block in chrono-tools.el.  `time-zones` immediately above is the
  active replacement; git history preserves the old config if anyone
  needs it.
- Add coverage for `cj/tmr-select-sound-file`.  Collapsed the
  prefix-arg branch into a delegation to
  `cj/tmr-reset-sound-to-default` (single reset source) and
  extracted `cj/tmr--available-sound-files` as a pure helper that
  tests directly.  9 ERT tests across Normal / Boundary / Error
  cover the available-sounds helper, the reset path, the prefix-arg
  delegation (no prompt), the normal selection path, and the
  empty-dir / missing-dir / cancel boundaries.
</content>
</entry>
<entry>
<title>fix(chrono-tools): correct undefined variable in timer reset message</title>
<updated>2026-02-16T04:16:57+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-02-16T04:16:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=b4ad7954eae625ba69a98812a5d488c8ddb936c2'/>
<id>urn:sha1:b4ad7954eae625ba69a98812a5d488c8ddb936c2</id>
<content type='text'>
notification-package → notification-sound in cj/tmr-reset-sound-to-default.
Also remove 10 untestable modules from ERT checklist [13/14].
</content>
</entry>
<entry>
<title>fix(chrono-tools): fix trailing paren in time-zones binding</title>
<updated>2026-01-24T18:25:36+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-01-24T18:25:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=0e9efdfc656c234521fa97db99904257a3614ccd'/>
<id>urn:sha1:0e9efdfc656c234521fa97db99904257a3614ccd</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix(terminal): add console/mosh compatibility</title>
<updated>2026-01-24T04:42:10+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-01-24T04:42:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=3ed0e8ea7c39ea0eaaa48506b7b99dee5ee6ca30'/>
<id>urn:sha1:3ed0e8ea7c39ea0eaaa48506b7b99dee5ee6ca30</id>
<content type='text'>
- Create terminal-compat.el for arrow key escape sequences
- Fix M-uppercase keybindings (M-O → M-S-o, etc.) that conflicted
  with terminal escape sequences ESC O A/B/C/D
- Add GUI-only guards for emojify and icon rendering
- 18 keybindings updated across 13 modules with override comments
</content>
</entry>
<entry>
<title>refactor(keybindings): reorganize time-zones and kill-buffer-and-window bindings</title>
<updated>2025-11-24T11:36:01+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2025-11-24T11:36:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=b3f9844628f98bb2edbbdadae872c175e3c65a75'/>
<id>urn:sha1:b3f9844628f98bb2edbbdadae872c175e3c65a75</id>
<content type='text'>
Move time-zones from C-x c to M-C for easier access. Move
cj/kill-buffer-and-window from M-C to C-; b k to group with other buffer
operations. Updated documentation and which-key labels.
</content>
</entry>
<entry>
<title>chrono-tools: integrate and test time-zones package</title>
<updated>2025-11-11T23:42:30+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2025-11-11T23:41:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=4e6374d363194077a344d95c5290bc6386650a57'/>
<id>urn:sha1:4e6374d363194077a344d95c5290bc6386650a57</id>
<content type='text'>
Replaced the world-clock configuration with the new time-zones
package to provide an interactive world clock with fuzzy search and
time shifting features. The previous world-clock code is commented
out for potential fallback testing.
</content>
</entry>
<entry>
<title>feat: calendar: fix calendar navigation keys to be more intuitive</title>
<updated>2025-10-15T20:27:25+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2025-10-15T20:27:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=68e67bbe9b351b1d5498cf7b9ee752a78c8f24e8'/>
<id>urn:sha1:68e67bbe9b351b1d5498cf7b9ee752a78c8f24e8</id>
<content type='text'>
arrow keys move by day
C-arrow move by month
M-arrow move by year
</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=092304d9e0ccc37cc0ddaa9b136457e56a1cac20'/>
<id>urn:sha1:092304d9e0ccc37cc0ddaa9b136457e56a1cac20</id>
<content type='text'>
</content>
</entry>
</feed>
