org-notify.elでスケジュールとかTODOのリマインダを通知
- 2015.01.10
- Emacs

公私ともども、TODOやスケジュールはorg-modeを中心に管理しています。
管理していると言っても、常にorg-modeのバッファを見ているわけではなく、そもそもずっとEmacsを触っているわけではありません。
Emacsは常に起動しているものの、ブラウザを見ている時もありますし、ExcelやWordと戯れている時もあります。となれば、org-modeの中でTODO、スケジュールを管理してくれる秘書さんが必要です。
それが今回紹介するorg-notify.elです。
deadlineが近いアイテムをお知らせ
org-notify.elは、org-modeにバンドルされている拡張で、contribディレクトリに配置されています。package.elでインストールしたい場合は、org-modeの公式アーカイブを package-archives
に追加して、=org-plus-contrib= をインストールしてください。
Org Emacs lisp Package Archive
org-notify
では、deadlineが近づいてきたアイテムに対するリマインダをplistで定義します。以下に簡単な例を示します。
(org-notify-add 'appt '(:time "15m" :period "2m" :duration 100 :actions -notify) '(:time "3d" :actions -email))
ここでは、二つのリマインダが定義されています。それぞれのプロパティで、:timeはdeadlineまでの時間、:periodは次のリマインダを表示させるまでの期間、:duration はリマインダを表示させておく時間を示しています。
:action はリマインダの種類を示しています。 -notifyではnotifications.elを使ったデスクトップ通知の形でリマインダが表示されます。 -emailでは user-mail-address
で設定されたメールアドレスにメールが送信されます。
:actionはデフォルトで6つ定義されています。詳しくは、org-notify-api.org を確認してください。
リマインダの定義がすめば、 (org-notify-start)
を実行することで、リマインダのタイマが起動します。
独自のアクションを定義する
アクションは独自に定義することもできます。例として、前回紹介したgntp.elを使ったアクションを定義してみます。
(defun org-notify-action-growl (plist) "Pop up desktop notification via gntp." (gntp-notify 'org-notify (encode-coding-string (plist-get plist :heading) 'utf-8) (encode-coding-string (org-notify-body-text plist) 'utf-8) "localhost"))
ここでsuffixがアクション名として認識されます。後は、追加するだけです。
(org-notify-add 'default '(:time "60m" :actions -growl :period "60m"))
というわけで、org-notify.elの紹介でした。独自のアクションを定義できるというのが、面白い所だと思います。 IFTTT なんかと連携させてみるのも面白いかもしれません。
-
前の記事
Growlにgntp経由で通知させるgntp.elの紹介 2015.01.06
-
次の記事
棚を自作した 2015.01.11