| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
| |
M-x wttrin died on a missing xterm-color. wttrin declares it in Package-Requires, but nothing here reads that header. The block loads my local checkout with :load-path, and use-package applies use-package-always-ensure only when :load-path is absent. So package.el was never involved and xterm-color never got installed.
It came free under the :vc form this replaced, since package-vc resolves requirements. Naming xterm-color explicitly restores it without giving up the checkout.
Only the weather buffer broke. The require fires on the render path. The mode line reads the JSON feed and kept working.
|
| |
|
|
|
|
| |
wttrin-state-file defaults to locate-user-emacs-file, which drops the state
file at the repo root as untracked clutter. Point it at data/ alongside the
other per-machine state files; moved the existing file there.
|
| |
|
|
| |
Sets wttrin-mode-line-tooltip-forecast-days to 3, the option added to wttrin in its 6c808ff (local checkout, release/0.4.0).
|
| |
|
|
| |
Load wttrin via :load-path from the local checkout instead of package-vc, so edits in the checkout are testable without a pull. The wttrin-auto-fit-font defcustom exists on release/0.4.0, so the placeholder setq becomes setopt, which also drops the byte-compile free-variable warning the setq carried. The :vc block stays as a commented fallback for production tracking.
|
| |
|
|
| |
More of the commentary/comment audit. The custom-* command modules, weather-config, and mousetrap-mode had empty package summary lines and verbose summary paragraphs. I filled the summaries and condensed the prose while keeping each module's load-contract metadata. dwim-shell-config and auth-config had malformed ;; headers (now ;;;), local-repository had a leading BOM, and two test files had blank summaries.
|
| |
|
|
| |
I set wttrin-auto-fit-font so the weather font scales to the window width, clamped to wttrin's min/max floor and cap. The option lands when the wttrin package gains the defcustom. Until then it's a harmless no-op the old code ignores, and the later defcustom won't clobber it.
|
| |
|
|
| |
Add the missing declare-function and defvar declarations that silence the not-known-to-be-defined and free-variable warnings in local-repository, org-webclipper, and weather-config. Rewrite jumper--location-exists-p from dotimes to cl-loop thereis, which fixes a spurious unused-variable warning and short-circuits on the first match. The remaining obsolete-generalized-variable warnings (point in pearl-config, buffer-substring in org-webclipper) come from upstream package macros (pearl, org-web-tools) and are not fixable in our code.
|
| |
|
|
| |
Complete the EAT consolidation by removing ghostel. ai-term and F12 already run on EAT, so ghostel's only remaining users were the dashboard launcher and term-config itself. Migrate the terminal-generic pieces into eat-config: the tmux copy-mode (C-<up> enters it, the same UX and keybinding as before, since agents run EAT over tmux) and the tmux-history capture, swapping ghostel-send-string for a pty write and the mode checks to eat-mode. Repoint the dashboard "Launch Terminal" to the eshell/EAT toggle, swap the face-diagnostic terminal-mode check to eat-mode, and refresh auto-dim's comment. Delete term-config.el and its init require. EAT's default semi-char non-bound-keys already lets windmove, buffer-move, and the Emacs essentials reach the terminal. Tests retargeted; the obsolete ghostel-keymap-exceptions tests are dropped.
|
| |
|
|
|
|
| |
Final classification batch: the last 19 modules — linear-config, local-repository, lorem-optimum, mail-config, markdown-config, music-config, pdf-config, quick-video-capture, reconcile-open-repos, restclient-config, slack-config, system-commands, telega-config, tramp-config, transcription-config, video-audio-recording, vterm-config, weather-config, wrap-up. I annotated each header, added a Batch 9 table to the inventory, and extended the validation allowlist. 101 of 102 modules are now classified; only elfeed-config remains, deferred on its test fix.
Two more hidden dependencies turned up. video-audio-recording uses the boundp shim for its C-; r binding, and mail-config registers C-; e directly without requiring keybindings, so it errors standalone rather than degrading. Both recorded for Phase 2.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Each :vc-installed package whose source repo is also cloned under
~/code now carries a commented :load-path line directly under the
:vc form. Uncomment the :load-path and comment the :vc to flip into
local development without rewriting the use-package block.
Covered: gloss, org-drill, wttrin (emacs-wttrin), chime.
Skipped: org-msg. The previous local clone at ~/code/org-msg is no
longer present; if it gets re-cloned later, add the same hint there.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
org-gcal
The three packages that still loaded from local checkouts now install
via :vc:
- chime → git@cjennings.net:chime.git (was :load-path "~/code/chime")
- wttrin → git@cjennings.net:emacs-wttrin.git (was :load-path
"/home/cjennings/code/emacs-wttrin")
- org-msg → https://github.com/jeremy-compostella/org-msg (was
:load-path "/home/cjennings/code/org-msg"; switching to upstream
rather than a fork since the previous fork wasn't carrying any
active changes)
For the two cjennings.net repos this matches the org-drill (977b954)
and gloss (56b2e20) shape: primary on cjennings.net, post-receive
hook mirroring to GitHub. The previously-commented :vc URLs in chime
and wttrin pointed at GitHub directly, which would have lost the
cjennings-first convention if uncommented later.
Also drops :ensure nil on chime (only relevant under package.el, not
:vc) and removes modules/archived/org-gcal-config.el. Nothing in
init.el or any module references org-gcal, so the file is genuinely
unused.
|
| |
|
|
|
|
|
|
| |
Set load-prefer-newer in early-init.el. Emacs was loading the older .elc files even when the .el source was newer, warning on every load but still using the stale byte code.
Point weather-config.el's wttrin :load-path at /home/cjennings/code/emacs-wttrin. The previous value was /home/cjennings/code/wttrin, which does not exist, so use-package could not load the package.
Add (package-initialize) to the Makefile compile target. Without it, batch byte-compile cannot see ELPA packages like git-gutter, git-timemachine, forge, and difftastic, which produced "Cannot load" warnings on every run.
|
| |
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
| |
- Enable wttrin-debug in weather-config.el
- Remove redundant lipsum chain reset at startup (silences noisy message)
- Improve learn message to identify lorem-optimum as source
- Delete unused lipsum-generator.el (superseded by lorem-optimum)
|
| |
|
|
|
|
|
|
| |
- 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
|
| |
|
|
|
| |
- Add Huntington Beach, CA
- Reorder locations
|
| |
|
|
|
|
|
| |
- dashboard-config.el: Change "Ebooks" to "Books" label
- weather-config.el: Fix variable name to wttrin-favorite-location
- todo.org: Add music player and mousetrap investigation tasks
- history: Update command history
|
| |
|
|
| |
This reverts commit d36afc3f277b9a4228eb7b2464ec4e503695b8d4.
|
| | |
|
| |
|
|
|
|
|
|
| |
Demand wttrin loading for immediate mode-line initialization at
startup. Switch to setopt for customizable variables and simplify
mode activation logic. Remove explicit autoload and use-package
xterm-color as a dependency. Adjust refresh interval and update
default locations list.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Integrated LanguageTool as an on-demand grammar checker, replacing the
previously disabled proselint checker.
Changes:
- Created scripts/languagetool-flycheck wrapper for flycheck integration
- Converts LanguageTool JSON output to flycheck format
- Includes suggestions in error messages
- 30-second timeout for large files
- Updated modules/flycheck-config.el:
- Defined languagetool checker for text/markdown/org/gfm modes
- Updated cj/flycheck-prose-on-demand to use LanguageTool
- Added installation instructions (sudo pacman -S languagetool)
- Improved documentation clarity
- Usage: Press C-; ? in org/text/markdown files
- Enables flycheck with LanguageTool
- Shows errors in *Flycheck errors* buffer
- On-demand only (no performance impact)
- Updated docs/NOTES.org:
- Added best practice: Test Emacs launch after non-trivial changes
- Example: emacs --eval "(kill-emacs)"
- Catches startup errors before committing
- Disabled weather debug mode (wttrin-debug nil)
- Marked todo.org grammar checker task as DONE
LanguageTool catches real grammar issues (subject-verb agreement, tense,
punctuation, common mistakes) that proselint missed.
Installation: LanguageTool 6.6 (222MB) from Arch repos
Dependencies: Python 3 (for wrapper script)
|
| |
|
|
|
|
|
|
|
|
|
|
| |
- Fixed critical "Selecting deleted buffer" error on startup
- wttrin-mode-line-mode now activates after init completes
- Uses after-init-hook to prevent async buffer deletion
- Weather widget loads safely after Emacs finishes initializing
- Improved modeline right-side spacing
- Added 2 non-breaking spaces after misc-info segment
- Prevents weather icon from appearing flush with edge
- Non-breaking spaces survive right-align trimming
|
| |
|
|
|
| |
Remove local load-path in favor of vc installation for wttrin to use
the source (latest revision).
|
| |
|