UP | HOME

Org Yaap
#emacs#org

Table of Contents

Yet Another Alert Package for Org.

Other alert packages are available already, like

So why build a new one?

Motivation

Same emacs process

The other solutions use an asynchronous emacs process in order to process org files without disrupting the user. However, this also means that any unsaved buffers will not be recognized by the background process.

I want the agenda function which collects the alerts to also be running in the same instance of emacs as I am. I use run-with-idle-timer instead to try to process the agenda while the user is not typing.

Android support

Notifications should run on termux and when clicked, should direct the user back to the headline.

Clock in / out

I want a persistent notification for clock in and clock out events which will always show what I'm working on and how long I've been working on it.

Daily events

I want a way to alert for events without a time set.

Overdue alerts

When I miss an alert, I would like to set up reminders or an interval for overdue alerts.

Not using alert package from MELPA

I would like to add this package to ELPA eventually.

Installation

Org yaap can be installed from straight:

(use-package org-yaap
  :straight (org-yaap :type git :host gitlab :repo "tygrdev/org-yaap")
  :config
  (org-yaap-mode 1))

Termux on android

For termux to work on android, the termux-api package must be installed:

pkg install termux-api

And allow-external-apps must be set to true in ~/.termux/termux.properties

allow-external-apps = true

I want emacs running in the background on start, so I'll install the termux:boot plugin from the app store and add a file ~/.termux/boot/emacs-daemon.sh

termux-wake-lock
emacs -daemon

In order to connect to the daemon, emacsclient can be used. I had to specify the path to the socket file directly, which should be in the /data/data/com.termux/files/usr/var/run folder. I added an alias to the .bash_profile file to set this up:

alias e="emacsclient -nw -s /data/data/com.termux/files/usr/var/run/emacs10473/server -a \"\""

Now, emacs will run on boot and I can enter emacs by typing e.

Usage

By default, a notification will appear for all scheduled and deadlined items within the agenda files. Marking an item as DONE will prevent a notification. If an item only has the date and no time specified, the notification will appear at 9am. If not marked DONE, a notification will be sent every 30 minutes after it was marked due.

All of the available options are listed on the project website.