<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dotemacs/assets, 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-05-26T23:07:13+00:00</updated>
<entry>
<title>chore: drop the stray butterfly PNG backup and ignore .bak files</title>
<updated>2026-05-26T23:07:13+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-05-26T23:07:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=43c59b8b0b8b4ee4cec7a7c6b5dc17292e4fc051'/>
<id>urn:sha1:43c59b8b0b8b4ee4cec7a7c6b5dc17292e4fc051</id>
<content type='text'>
assets/M-x_butterfly.png.bak was a tracked duplicate of the banner PNG, an accidental backup that got committed. I removed it and added *.bak to .gitignore so editor and image backups stay out of the tree.
</content>
</entry>
<entry>
<title>feat(dashboard): render the butterfly banner with a transparency mask</title>
<updated>2026-05-25T18:15:21+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-05-25T18:15:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=4586325327b4b1ad5885c91437a774e45332657a'/>
<id>urn:sha1:4586325327b4b1ad5885c91437a774e45332657a</id>
<content type='text'>
The dashboard banner showed the butterfly PNG without its transparency, because the image descriptor was built before the mask props were set. I moved the banner setup (dashboard-startup-banner, dashboard-banner-logo-title) ahead of dashboard-setup-startup-hook and added dashboard-image-extra-props with :mask heuristic, so the mask is in place when the startup hook builds the buffer. If a *dashboard* buffer already exists I refresh it, so the change shows without a restart.

I also re-encoded the PNG smaller and kept the previous encoding as M-x_butterfly.png.bak.
</content>
</entry>
<entry>
<title>feat(agenda): add project-filtered agenda view on C-f8</title>
<updated>2026-04-10T02:04:11+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-04-10T02:04:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=c17c455be6a43effc3c6fb8d27ffd95bc96b3d8a'/>
<id>urn:sha1:c17c455be6a43effc3c6fb8d27ffd95bc96b3d8a</id>
<content type='text'>
New cj/todo-list-single-project prompts for a project, then shows the
daily agenda scoped to that project's todo.org plus calendars and inbox.
Moved cj/todo-list-all-agenda-files from C-f8 to s-f8.
</content>
</entry>
<entry>
<title>feat(vterm): pass F8, F9, F10 through to Emacs</title>
<updated>2026-04-07T18:04:48+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-04-07T18:04:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=04addf42cff28e0099264f3e9a83843ea50286b8'/>
<id>urn:sha1:04addf42cff28e0099264f3e9a83843ea50286b8</id>
<content type='text'>
Add nil bindings for F8 (agenda), F9 (gptel), and F10 (music) in
vterm-mode-map so these global keybindings aren't swallowed by vterm.
Also disable wttrin-debug and update abbreviations.
</content>
</entry>
<entry>
<title>fix(slack): add error visibility to notification handler</title>
<updated>2026-03-14T17:55:48+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-03-14T17:55:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=759b654c89e62dab207888bf5615ea8dc3874dfa'/>
<id>urn:sha1:759b654c89e62dab207888bf5615ea8dc3874dfa</id>
<content type='text'>
Websocket library silently swallows callback errors via condition-case.
Wrap cj/slack-notify in condition-case to surface errors in *Messages*.
Add cj/slack-test-notify command for pipeline verification.
</content>
</entry>
<entry>
<title>fix(calendar-sync): handle variable-length date lists in RRULE UNTIL</title>
<updated>2026-03-10T04:40:26+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-03-10T04:40:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=37a7bf1bf54512def40bee8405939d101a136f45'/>
<id>urn:sha1:37a7bf1bf54512def40bee8405939d101a136f45</id>
<content type='text'>
date-to-time used (reverse date) which broke when RRULE UNTIL values
were parsed as 5-element lists (year month day hour minute) from UTC
timestamps. This caused recurring events with UTC UNTIL dates to
expand to 0 occurrences, producing stale calendar entries.
</content>
</entry>
<entry>
<title>feat(json,yaml): add tree-sitter modes, formatting, and jq integration</title>
<updated>2026-03-03T01:46:38+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-03-03T01:46:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=fbaac182eed439326ac7a4f179d503541e93f8f3'/>
<id>urn:sha1:fbaac182eed439326ac7a4f179d503541e93f8f3</id>
<content type='text'>
New prog-json module: json-ts-mode with jq formatting (C-; f) and
jq-interactively (C-c C-q). Upgraded prog-yaml to yaml-ts-mode with
prettier formatting. Both use treesit-auto for grammar management.
Includes 18 new tests (10 JSON, 8 YAML), 185/185 passing.
</content>
</entry>
<entry>
<title>chore: minor housekeeping updates</title>
<updated>2026-02-05T00:44:07+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-02-05T00:44:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=6bf96b15da42c6c8cc92f8df5165f492ce1d0cc6'/>
<id>urn:sha1:6bf96b15da42c6c8cc92f8df5165f492ce1d0cc6</id>
<content type='text'>
- Add typo correction: should't -&gt; shouldn't
- Add dirvish shortcut pcr for career project
- Rename pc -&gt; pcl for clipper project
- Minor whitespace cleanup in init.el
</content>
</entry>
<entry>
<title>chore: add new typo corrections to abbrev_defs</title>
<updated>2026-02-04T13:52:33+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-02-04T13:52:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=7d1ca2b5a58a41a102c4afc44cfe07f91ae45fdc'/>
<id>urn:sha1:7d1ca2b5a58a41a102c4afc44cfe07f91ae45fdc</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix(abbrev): correct broken abbreviation substitutions</title>
<updated>2026-01-24T18:35:22+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-01-24T18:35:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=cad427f4bb867f2667ac07c6c2b675c380f6675d'/>
<id>urn:sha1:cad427f4bb867f2667ac07c6c2b675c380f6675d</id>
<content type='text'>
- commmitting → committing (was "not")
- contstruction → construction (was "carrollton")
- dialate → dilate (was "to")
- feelingn → feeling (was "up")
- inclluding → including (was empty)
- remeditation → remediation (was "schedule")
- stoory → story (was "short")
- valiedate → validate (was "visible")
- Remove walkthrough, differentname, sunroom (valid words)
</content>
</entry>
</feed>
