aboutsummaryrefslogtreecommitdiff
path: root/modules/weather-config.el
Commit message (Collapse)AuthorAgeFilesLines
* fix(weather): keep wttrin runtime state in data/Craig Jennings2 days1-0/+3
| | | | | | 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.
* feat(weather): show a three-day forecast in the mode-line tooltipCraig Jennings3 days1-0/+3
| | | | Sets wttrin-mode-line-tooltip-forecast-days to 3, the option added to wttrin in its 6c808ff (local checkout, release/0.4.0).
* refactor(weather): load wttrin from the local release/0.4.0 checkoutCraig Jennings7 days1-9/+9
| | | | 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.
* docs: fix blank package summaries and normalize more module headersCraig Jennings7 days1-4/+3
| | | | 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.
* feat(weather): opt into wttrin auto-fit font scalingCraig Jennings7 days1-0/+6
| | | | 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.
* chore(elisp): clear byte-compile warnings via declarations and a loop rewriteCraig Jennings9 days1-0/+2
| | | | 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.
* refactor(term): retire ghostel, migrate copy-mode and tmux-history to eat-configCraig Jennings9 days1-0/+11
| | | | 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.
* docs(load-graph): classify remaining domain and optional modulesCraig Jennings2026-05-241-0/+9
| | | | | | 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.
* chore(deps): add commented :load-path hints for local-dev swapsCraig Jennings2026-04-301-0/+1
| | | | | | | | | | | | 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.
* chore(deps): move remaining packages from :load-path to :vc; drop archived ↵Craig Jennings2026-04-301-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* fix: load freshness, wttrin path, compile-time package initCraig Jennings2026-04-221-1/+1
| | | | | | | | 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.
* feat(vterm): pass F8, F9, F10 through to EmacsCraig Jennings2026-04-071-1/+1
| | | | | | 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.
* chore: enable wttrin debug, clean up lorem-optimum startupCraig Jennings2026-02-201-1/+1
| | | | | | | - 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)
* fix(terminal): add console/mosh compatibilityCraig Jennings2026-01-231-1/+1
| | | | | | | | - 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
* chore(weather): update location listCraig Jennings2025-11-211-3/+4
| | | | | - Add Huntington Beach, CA - Reorder locations
* fix: Reapply dashboard, weather config fixes and todo updatesCraig Jennings2025-11-141-1/+1
| | | | | | | - 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
* Revert "checking in modified/removed tests and other misc changes"Craig Jennings2025-11-141-1/+1
| | | | This reverts commit d36afc3f277b9a4228eb7b2464ec4e503695b8d4.
* checking in modified/removed tests and other misc changesCraig Jennings2025-11-141-1/+1
|
* refactor:weather-config: streamline wttrin configurationCraig Jennings2025-11-091-41/+19
| | | | | | | | 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.
* feat: Fix modeline lag and add org multi-level sort with comprehensive testsCraig Jennings2025-11-081-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* feat: Add LanguageTool integration for comprehensive grammar checkingCraig Jennings2025-11-041-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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)
* fix: Resolve async buffer error and improve modeline spacingCraig Jennings2025-11-041-1/+24
| | | | | | | | | | | | - 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
* maint:weather: update wttrin installation to vc-installCraig Jennings2025-10-271-2/+1
| | | | | Remove local load-path in favor of vc installation for wttrin to use the source (latest revision).
* changing repositoriesCraig Jennings2025-10-121-0/+40