| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
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.
|
| |
|
|
|
|
| |
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.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
`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)'.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
| |
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 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.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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
|
| |
|
|
|
| |
Replace vertical table of contents with horizontal section links
matching wttrin README style. Add Made for GNU Emacs badge.
|
| |
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| | |
|
| |
|
|
|
| |
Replace markdown-style **bold** with org-mode *bold* for correct
rendering on GitHub.
|
| |
|
|
|
|
|
|
|
| |
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.
|
| |
|