aboutsummaryrefslogtreecommitdiff
path: root/assets
Commit message (Collapse)AuthorAgeFilesLines
* chore: drop the stray butterfly PNG backup and ignore .bak filesCraig Jennings10 days1-0/+0
| | | | 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.
* feat(dashboard): render the butterfly banner with a transparency maskCraig Jennings11 days2-0/+0
| | | | | | 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.
* feat(agenda): add project-filtered agenda view on C-f8Craig Jennings2026-04-091-4/+5
| | | | | | 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.
* feat(vterm): pass F8, F9, F10 through to EmacsCraig Jennings2026-04-071-2/+3
| | | | | | 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.
* fix(slack): add error visibility to notification handlerCraig Jennings2026-03-141-2/+3
| | | | | | 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.
* fix(calendar-sync): handle variable-length date lists in RRULE UNTILCraig Jennings2026-03-091-0/+1
| | | | | | | 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.
* feat(json,yaml): add tree-sitter modes, formatting, and jq integrationCraig Jennings2026-03-021-5/+8
| | | | | | | 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.
* chore: minor housekeeping updatesCraig Jennings2026-02-041-0/+1
| | | | | | | - Add typo correction: should't -> shouldn't - Add dirvish shortcut pcr for career project - Rename pc -> pcl for clipper project - Minor whitespace cleanup in init.el
* chore: add new typo corrections to abbrev_defsCraig Jennings2026-02-041-2/+4
|
* fix(abbrev): correct broken abbreviation substitutionsCraig Jennings2026-01-241-15/+14
| | | | | | | | | | | | - 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)
* feat(email): add password decryption to setup scriptCraig Jennings2026-01-242-0/+1
| | | | | | | | - Add password decryption loop to scripts/setup-email.sh - Decrypt .gpg files from assets/mail-passwords/ to ~/.config/ - Add encrypted password files (.gmailpass.gpg, .cmailpass.gpg) - Fix missing paren in text-config.el that broke config parsing - Clean up mail-config.el
* fix(calendar-sync): disable auto-start to prevent freezeCraig Jennings2026-01-141-2/+4
| | | | | | Proton calendar download causes Emacs to freeze. Disabled auto-sync by default until root cause is investigated. Manual sync still available via C-; g s keybinding.
* feat: Fix modeline lag and add org multi-level sort with comprehensive testsCraig Jennings2025-11-081-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Performance improvement and new feature with full test coverage. ## Changes ### 1. Fix modeline line/column position lag (#A priority) - Replace expensive line-number-at-pos with cached %l/%c format specifiers - Enable line-number-mode explicitly for caching - Result: Instant modeline updates, zero performance overhead - Files: modules/modeline-config.el:81-83, modules/ui-config.el:53 ### 2. Implement multi-level org sorting - New function: cj/org-sort-by-todo-and-priority - Sorts by TODO status (TODO before DONE) AND priority (A→B→C→D) - Uses stable sorting: priority first, then TODO state - Gracefully handles empty sections (no error) - Bound to C-; o o (ordering → org sort) - Files: modules/org-config.el:278-299, modules/custom-ordering.el:253,267 ### 3. Comprehensive ERT test suite (12/12 passing) - Normal cases: Mixed TODO/DONE, multiple of same type, same priority - Boundary cases: Empty sections, single entries, no priorities - Error cases: Non-org-mode buffer - Test file: tests/test-org-sort-by-todo-and-priority.el ### 4. Testing improvements discovered - Disable org-mode hooks to avoid package dependencies in batch mode - org-sort-entries must be called from parent heading - Preserve priority cookie in org-get-heading (t t nil t) - Add condition-case to handle "Nothing to sort" gracefully ### 5. Minor cleanup - Comment out chime-debug setting (org-agenda-config.el:267) - Mark modeline lag task as DONE in todo.org ## Technical Details Modeline optimization: - line-number-at-pos is O(n) where n = current line - %l and %c are O(1) lookups from cached values Org sorting algorithm uses stable sort: 1. Sort by priority (A, B, C, D, unprioritized) 2. Sort by TODO status (preserves priority order within groups) Result: TODO [#A], TODO [#B], DONE [#A], DONE [#B], etc.
* chore: Update abbrev corrections and add flyspell TODOCraig Jennings2025-11-061-5/+6
| | | | | - Automatic abbrev_defs updates from spell corrections - Added TODO: investigate flyspell-then-abbrev keybinding loss in scratch
* chore: Move gemini.key.gpg to assets folderCraig Jennings2025-11-061-0/+2
| | | | | Relocated gemini.key.gpg to assets/ folder for better organization. No code references found in modules directory, so no updates needed.
* removing test asset duplicateCraig Jennings2025-10-211-411/+0
|
* abbrevsCraig Jennings2025-10-171-3/+3
|
* abbrevsCraig Jennings2025-10-151-1/+4
|
* changing repositoriesCraig Jennings2025-10-12202-0/+1087786