Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/akhramov/org-wild-notifier.el
Alert notifications for org-agenda
https://github.com/akhramov/org-wild-notifier.el
emacs emacs-lisp notifications org-agenda org-mode
Last synced: 9 days ago
JSON representation
Alert notifications for org-agenda
- Host: GitHub
- URL: https://github.com/akhramov/org-wild-notifier.el
- Owner: akhramov
- License: gpl-3.0
- Created: 2018-01-07T21:32:36.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2024-03-25T07:44:44.000Z (8 months ago)
- Last Synced: 2024-08-02T14:05:48.898Z (3 months ago)
- Topics: emacs, emacs-lisp, notifications, org-agenda, org-mode
- Language: Emacs Lisp
- Size: 115 KB
- Stars: 145
- Watchers: 4
- Forks: 21
- Open Issues: 12
-
Metadata Files:
- Readme: README.org
- License: COPYING
Awesome Lists containing this project
README
* org-wild-notifier.el
[[https://travis-ci.org/akhramov/org-wild-notifier.el][https://travis-ci.org/akhramov/org-wild-notifier.el.svg?branch=master]]
[[https://stable.melpa.org/#/org-wild-notifier][file:https://stable.melpa.org/packages/org-wild-notifier-badge.svg]]
[[https://melpa.org/#/org-wild-notifier][file:https://melpa.org/packages/org-wild-notifier-badge.svg]]** What is it?
A package which adds notification support for org-agenda views.
With this package you'll get notifications for ~TODO~ entries.** How does it differ from existing packages?
There are few good org agenda notification packages I'm aware of:- [[https://github.com/spegoraro/org-alert][org-alert]] notifies about deadlines every N minutes using [[https://github.com/jwiegley/alert][alert]] package.
- [[https://code.orgmode.org/bzg/org-mode/raw/master/contrib/lisp/org-notify.el][org-notify]] complex, feature-rich library from Org contrib directory.While aforementioned packages are good on their own, I wanted to have
something that resembles popular Calendar solutions, something that'd
be unobtrusive in use and configuration.** Configuration?
Oh, yes. This package provides some configuration options:
| Description | Variable | Default value |
|------------------------------------------------------------------------------------------------------+----------------------------------------+-----------------------------|
| Alert time in minutes | org-wild-notifier-alert-time | '(10) |
| Title of notifications | org-wild-notifier-notification-title | Agenda |
| Notifications icon | org-wild-notifier-notification-icon | nil |
| Org keyword based whitelist. You'll get notified /only/ about events specified by this variable | org-wild-notifier-keyword-whitelist | '("TODO") |
| Org keyword based blacklist. You'll /never/ be notified about events specified by this variable | org-wild-notifier-keyword-blacklist | nil |
| Org tags based whitelist. You'll get notified /only/ about events specified by this variable | org-wild-notifier-tags-whitelist | nil |
| Org tags based blacklist. You'll /never/ be notified about events specified by this variable | org-wild-notifier-tags-blacklist | nil |
| Predicate based whitelist. You'll get notified /only/ about events matched by one of these functions | org-wild-notifier-predicate-whitelist | nil |
| Predicate based blacklist. You'll /never/ be notified about events matched by one of these functions | org-wild-notifier-predicate-blacklist | nil |
| Property which adds additional notifications | org-wild-notifier-alert-times-property | WILD_NOTIFIER_NOTIFY_BEFORE |~org-wild-notifier-predicate-whitelist~ and
~org-wild-notifier-predicate-blacklist~ are lists of functions that take a
single parameter, which is a marker on an Org event. For example, to not receive
notifications for Org habits:#+BEGIN_SRC lisp
(setq org-wild-notifier-predicate-blacklist
'((lambda (marker)
(-contains? (org-entry-properties marker 'all)
'("STYLE" . "habit")))))
#+END_SRC~org-wild-notifier-alert-times-property~ demands further explanations.
Let's suppose you have an important event. One standard 10-minute notification
is not enough. Fear not, let's modify our Org entry.#+BEGIN_SRC org
* TODO Visit the chocolate factory
SCHEDULED: <2018-01-04 Thu 16:00>
:PROPERTIES:
:WILD_NOTIFIER_NOTIFY_BEFORE: 80 60 55 43 5
:END:
#+END_SRCWith such configuration you'll get notifications 80, 60, 55, 43, *10*
and 5 minutes before the event.*** How do I customize alerts?
As ~org-alert~, this package is based on [[https://github.com/jwiegley/alert][alert]] package. Alert offers a
wide range of customizations through it's [[https://github.com/jwiegley/alert#builtin-alert-styles][styles]] facility.
Good examples on how to define your own styles can be found in alert
source code.
A bad example on how to define your own styles can be found [[https://github.com/akhramov/emacs.d/blob/master/packages/wild-notifier.el][here]].** How do I install the package?
This package is available on [[http://melpa.milkbox.net/][MELPA]].** How do I use the package?
This package works in two modes:
- Automatic mode: you can toggle timer-based minor mode by invoking
~org-wild-notifier-mode~.
- Manual mode: user runs checks by invoking ~org-wild-notifier-check~.** Wait. Wild?
What'd you expect? I have literally no imagination.