/org-wild-notifier.el

Alert notifications for org-agenda

Primary LanguageEmacs LispGNU General Public License v3.0GPL-3.0

org-wild-notifier.el

https://travis-ci.org/akhramov/org-wild-notifier.el.svg?branch=master https://stable.melpa.org/packages/org-wild-notifier-badge.svg 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:

  • org-alert notifies about deadlines every N minutes using alert package.
  • 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:

DescriptionVariableDefault value
Alert time in minutesorg-wild-notifier-alert-time‘(10)
Title of notificationsorg-wild-notifier-notification-titleAgenda
Notifications iconorg-wild-notifier-notification-iconnil
Org keyword based whitelist. You’ll get notified only about events specified by this variableorg-wild-notifier-keyword-whitelist’(“TODO”)
Org keyword based blacklist. You’ll never be notified about events specified by this variableorg-wild-notifier-keyword-blacklistnil
Org tags based whitelist. You’ll get notified only about events specified by this variableorg-wild-notifier-tags-whitelistnil
Org tags based blacklist. You’ll never be notified about events specified by this variableorg-wild-notifier-tags-blacklistnil
Predicate based whitelist. You’ll get notified only about events matched by one of these functionsorg-wild-notifier-predicate-whitelistnil
Predicate based blacklist. You’ll never be notified about events matched by one of these functionsorg-wild-notifier-predicate-blacklistnil
Property which adds additional notificationsorg-wild-notifier-alert-times-propertyWILD_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:

(setq org-wild-notifier-predicate-blacklist
  '((lambda (marker)
      (-contains? (org-entry-properties marker 'all)
                  '("STYLE" . "habit")))))

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.

* TODO Visit the chocolate factory
  SCHEDULED: <2018-01-04 Thu 16:00>
  :PROPERTIES:
  :WILD_NOTIFIER_NOTIFY_BEFORE: 80 60 55 43 5
  :END:

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 alert package. Alert offers a wide range of customizations through it’s 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 here.

How do I install the package?

This package is available on 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.