org-wild-notifier.el
org-wild-notifier.el copied to clipboard
Alert notifications for org-agenda
- 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 | | Property which adds additional notifications | org-wild-notifier-alert-times-property | WILD_NOTIFIER_NOTIFY_BEFORE |
The last 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_SRC
With 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.