aboutsummaryrefslogtreecommitdiff
path: root/README.org
Commit message (Collapse)AuthorAgeFilesLines
* docs: document the per-event :CHIME_NOTIFY_BEFORE: propertyCraig Jennings2026-05-111-1/+1
| | | | The README's migration note said the per-event reminder property had been removed. That's stale now that the property is back. I rewrote the line to point at :CHIME_NOTIFY_BEFORE: and the deprecated :WILD_NOTIFIER_NOTIFY_BEFORE: alias. I also added a "Per-Event Override" section to docs/CONFIGURATION.org covering the syntax, the no-inheritance behavior, malformed-value handling, and the alias's deprecation path.
* docs: correct test inventory and org-wild-notifier historyCraig Jennings2026-05-111-1/+3
| | | | | | TESTING.org carried a frozen "645 tests as of 2026-04-04" inventory plus a top-files table that goes stale every time a test file is added. I replaced it with a one-line pointer to `make count`, which is the live source. README's History section said Artem Khramov "deprecated org-wild-notifier in favor of org-alert." He didn't. He archived the repo and stopped responding to issues. The README's "Alternatives" section listed org-alert and org-notify neutrally, never as recommended successors. And the project has since been picked back up under the Emacs Orphanage. I rewrote the paragraph to describe what happened and added a line about the orphanage fork.
* docs: split detailed user docs out of readmeCraig Jennings2026-05-101-1035/+51
|
* refactor!: collapse six filter defcustoms into include/exclude alistsCraig Jennings2026-05-051-45/+68
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Six per-axis filter variables (keyword/tags/predicate × whitelist/blacklist) were carrying parallel structure for what's really one decision: include events that look like X, exclude events that look like Y. I merged them into two alists, `chime-include-filters' and `chime-exclude-filters', each keyed by axis (`keywords', `tags', `predicates'). Default for `chime-exclude-filters' keeps the same out-of-the-box behavior — done items and declined Google Calendar invites stay filtered: ((predicates . (chime-done-keywords-predicate chime-declined-events-predicate))) Implementation: one shared `chime--filter-predicates' helper that walks the alist and emits a marker-taking predicate per non-empty axis. The public callers — now `chime--apply-include-filters' and `chime--apply-exclude-filters' — wrap that helper with `-orfn'-then-`-filter' and `-orfn'-then-`-remove' respectively. The async-environment regex injection list shrank from six names to two, and the debug config dump in chime-debug.el follows. The terminology shift (whitelist/blacklist → include/exclude) drops loaded language for descriptive intent. The internal helpers and the public function names all moved together. Tests: 700-ish lines across five test files (test-chime-apply-whitelist, test-chime-apply-blacklist, test-chime-whitelist-blacklist-conflicts, test-chime-environment-regex, test-chime-declined-events-predicate) were rewritten to bind the new alists. The dedup-conflict tests still exercise the same precedence rule (exclude wins on overlap). README's filtering section was rewritten end-to-end with new examples. Migration: (setq chime-keyword-whitelist '("TODO")) ;; -> (setq chime-include-filters '((keywords . ("TODO")))) (setq chime-predicate-blacklist '(my-pred)) ;; -> (setq chime-exclude-filters '((predicates . (my-pred)))) This brings the consolidation pass to 37 -> 29 defcustoms, the target from .ai/settings-consolidation.org.
* refactor!: collapse three time-left format defcustoms into one alistCraig Jennings2026-05-051-14/+28
| | | | | | | | | | | | | | | | | | | | | | | | I merged `chime-time-left-format-at-event', `chime-time-left-format-short', and `chime-time-left-format-long' into a single alist `chime-time-left-formats' keyed by `at-event' / `short' / `long'. Three knobs for one feature (countdown display) was unnecessary surface area; one alist is the same flexibility with a third the namespace. `chime--time-left' switched from a pcase-on-variable to a pcase-on-regime that picks an alist key, then `alist-get's the format string. Behavior is identical for default settings. Test setup in the four affected files now builds the alist with `(list (cons 'KEY VAL) ...)' instead of `'(...)'. The literal-quote form returns the SAME cons-cell structure on every evaluation, so a previous test mutating it via `setf' on `alist-get' poisoned later tests. `list' + `cons' produces fresh structure per call, which is what the tests actually need. Migration: `(setq chime-time-left-format-short "in %mm")' becomes `(setf (alist-get 'short chime-time-left-formats) "in %mm")', or a full `(setq chime-time-left-formats '((at-event . ...) (short . ...) (long . ...)))' replacement.
* refactor!: drop chime-play-sound, use chime-sound-file = nil to disableCraig Jennings2026-05-051-8/+7
| | | | | | | | | | | | | | | | | `chime-play-sound' was redundant with `chime-sound-file' — both had to be truthy for sound to play, and `chime-sound-file' already documented "set to nil to disable sound completely". Two knobs for one decision is a trap. I removed the defcustom and the `(when chime-play-sound ...)' guard in `chime--notify' (it now just checks `chime-sound-file'). Tests, README quick-start, and the troubleshooting checklist all reference the new single-knob form. One redundant test (sound-disabled-via-the-toggle) got dropped because it now duplicates the sound-file-nil case. Breaking change: users with `(setq chime-play-sound nil)' in their config will get a void-variable warning at customize time and lose their disable. Migration: `(setq chime-sound-file nil)'.
* refactor: clear package-lint warnings for MELPA prepCraig Jennings2026-05-051-5/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I worked through the package-lint backlog and got it to zero. Five changes: 1. Renamed six interactive debug commands from the private `chime--debug-*' prefix to the public `chime-debug-*' form. They were always M-x targets, so the private prefix was just wrong. The autoload cookies stay because public commands SHOULD be autoloaded. README, docstring references in chime.el, and the matching tests follow the rename. 2. Dropped `Version', `Package-Requires', and `Keywords' headers from chime-org-contacts.el. Auxiliary files in a multi-file package shouldn't carry their own metadata — package-lint flags it as an error because the headers have no effect outside the main file. The main file (chime.el) already declares the chime package's metadata. 3. Dropped `Keywords' from chime-debug.el for the same reason. 4. Dropped the auto-loader for the optional chime-org-contacts integration from chime.el. The old code used `with-eval-after-load 'org-capture' to pull the file in, which package-lint flags as a configuration pattern that doesn't belong in a package. Users who want the integration now require it themselves; the README shows both the plain `with-eval-after-load' pattern and the `use-package :after' form. chime-org-contacts.el's internal `with-eval-after-load' went away too — by the time the user has required the file, they've already gated it on org-capture being loaded, so the inner check is redundant. 5. Dropped the redundant `with-eval-after-load' from chime-org-contacts.el's activation block. The setup function still guards on `(boundp 'org-capture-templates)' so it's safe to require either order. Behavioral note: this is a small breaking change for anyone whose config relied on the auto-load. The README change spells out the migration path.
* docs: expand custom predicate examples in READMECraig Jennings2026-04-201-7/+22
| | | | | | | Fill out the custom-predicate-filtering section with the two motivating examples from the surrounding prose (specific-file whitelist, weekend work silencer) plus a priority-A whitelist, and tighten the defensive handling of buffer-file-name for indirect buffers.
* Improve README quick start, manual install, and filtering docsCraig Jennings2026-04-041-59/+60
| | | | | | | | Rewrote Quick Start to show minimal config (just chime-mode 1) with defaults overview and modeline interaction guide. Expanded manual install with git clone steps. Fixed TOC nav links, made tag filter examples consistent, added custom predicate motivation, removed redundant Basic Event subsection.
* Add personality and reorganize READMECraig Jennings2026-04-041-264/+135
| | | | | | | Add Douglas Adams epigraph, funny event names throughout, voice in installation and history sections. Consolidate org-contacts into new Integrations section with org-gcal guide. Trim verbose all-day events interaction examples. Add severity, sound format, and icon docs.
* Restructure README and address review commentsCraig Jennings2026-04-041-149/+153
| | | | | | | | | | | | | | - Remove About section (merged into intro) - Rename Credits to History, fold Migration under it - Fold Manual Check and Known Limitations under Usage - Fold Full Example Configuration under Configuration - Add straight.el and quelpa install methods - Move requirements into Installation with auto-deps note - Add notification daemon check to troubleshooting - Add Development subsection with clone/lint/issues info - Add LICENSE file (GPL-3.0) - Update nav bar to match new structure - Fix startup integration test for new modeline error state
* Add horizontal nav bar and Made for GNU Emacs badge to READMECraig Jennings2026-04-041-20/+4
| | | | | Replace vertical table of contents with horizontal section links matching wttrin README style. Add Made for GNU Emacs badge.
* Default modeline lighter to empty stringCraig Jennings2026-04-041-8/+5
| | | | | | The bell emoji lighter was redundant alongside the alarm clock event display in global-mode-string. One icon is enough. Users who want a separate mode indicator can set chime-modeline-lighter.
* Improve defaults: 2-hour modeline window, notify at event timeCraig Jennings2026-04-041-7/+10
| | | | | | | | | | Bump chime-modeline-lookahead-minutes from 60 to 120 so events within the next 2 hours show in the modeline. The old 60-minute default hid events most users would expect to see. Add (0 . high) to default chime-alert-intervals so users get a notification at event time in addition to 10 minutes before. The single-notification default meant a missed alert had no backup.
* Clean up README prose: remove AI-isms, fix typoCraig Jennings2026-04-041-20/+18
| | | | | | | | Remove promotional language (pleasant, extensive, comprehensive), flatten rule-of-three constructions, replace "interplay" heading, simplify tactical/strategic framing, drop redundant blacklist justification. Fix "begain" typo in credits. Trim duplicated Testing/Development pointers.
* Update README for accuracy and completenessCraig Jennings2026-04-041-41/+126
| | | | | | | | | | | | | | | | Fix stale content: - Tooltip lookahead default: 8760 hours -> 168 (1 week) - Test count: 505 -> 600+ - Emacs version: 26.1+ -> 27.1+ (matches Package-Requires) - Troubleshooting: fix stale convert-contacts-to-file reference to match current in-place conversion workflow Add missing documentation: - Custom predicate filtering with examples - chime-max-consecutive-failures, chime-validation-max-retries - chime-extra-alert-plist, chime-additional-environment-regexes - chime-refresh-modeline command - Debug mode section in Troubleshooting with all diagnostic commands
* Align inline comments in full example configurationCraig Jennings2026-02-221-7/+7
|
* Fix bold formatting in README for org-mode renderingCraig Jennings2026-02-221-35/+35
| | | | | Replace markdown-style **bold** with org-mode *bold* for correct rendering on GitHub.
* Update README and fix repo references after rename to chimeCraig Jennings2026-02-221-13/+130
| | | | | | | | | Fix backronym to "CHIME Heralds Imminent Modeline Events" across all files. Update GitHub URLs from chime.el to chime. Add documentation for missing customization variables (notification icon, startup delay, modeline lighter, no-events text, tooltip header format, advance notice, tooltip all-day events). Fix test count (505) and default for chime-day-wide-alert-times.
* changed repositoriesCraig Jennings2025-11-181-0/+1081