UP | HOME

org-agendaをdenoteで管理する

Table of Contents

Last modified: 20240616T1056+0900


1. はじめに

denoteは、リンク関係の機能が豊富で使いやすい。日常的に使うファイルはできるだけdenoteの管理下に置いておきたい。手始めに、 org-agenda をdenoteで管理することを考える。

2. org-agenda-filesをdenoteの管理下に置く

C-c a a で agenda viewに予定を一覧で表示させたとき、その項目にカーソルを置いてリターンキーを叩くと、その予定が書かれたもとのファイルにジャンプする。このとき、そこに、その予定の詳細があると便利である。たとえば、

  • 出張の予定を叩くと、スケジュールの詳細や、ホテルの電話番号などがわかる。
  • 授業の予定を叩くと、昨年のその回のメモへのリンクがある。
  • Zoomの予定を叩くと、接続先のURLがメモしてある。

など、枚挙にいとまがない。 org-agenda-files をdenoteの管理下に置いておけば、denoteのリンク機能を使って、より効率的に補助情報を書いておくことができる。

denoteは、 denote-directory で指定するディレクトリと、それの下にあるサブディレクトリに含まれるファイルを対象とする。だから、 org-agenda-files に指定するファイルやディレクトリも、 denote-directory 以下に置くことになる。

org-agenda-files が、固定した少数のファイルならば、それらをすべて denote-directory に置くのが簡単。他方、固定していない場合には、 denote-directory の下に、たとえば /agenda/ というようなサブディレクトリを作って、そのディレクトリを org-agenda-files に含める。

具体的には、 M-x denote または C-c n n で通常のdenoteファイルを作成し、そのファイル名を、 org-agenda-files に含める。キーワードに、 agendatask を入れておくといいだろう。

denote標準のファイル名はとても長いので、ファイル冒頭で下記のようにCATEGORYを指定して、agenda viewが乱れないようにする。

#+category: agenda

3. アーカイブもdenoteの管理下に置く

たとえば、同じようなタスクが一年に一度、毎年繰り返す場合など、過去の予定を手軽に参照したい。 agenda fileは、 DONE になった予定を M-x org-archive-subtree でアーカイブに移動させることで、適切なサイズを維持するようになっている。このアーカイブも、denoteの管理下にあれば便利である。

アーカイブファイルの名前と場所を決めるのは、 org-archive-location という変数で、デフォルトは、 %s_archive:: となっている。 %s は、もとのファイル名であり、二つのセミコロンの後には、アーカイブファイル内のヘッダを指定できる。

たとえば、

((setq org-archive-location "%s_archive::* Finished"))

と指定すると、 agenda2024.org というファイルの中にある DONE の予定は、同じディレクトリの agenda2024.org_archive というファイルの中の、 * Finished というヘッダの下に移動する。

これをdenote化するには、 archive というキーワードを含む通常のdenoteファイルを作り、それをアーカイブ先に指定すればよい。たとえば、 init.el

((setq org-archive-location "~/Dropbox/org/20240101T121212--agenda__archive.org"))

とする。しかしこれだと、あらゆるアーカイブがこのファイルに集中するので、もし、ファイル毎にアーカイブを分けたいのであれば、各ファイルの冒頭で以下のように設定できる。

#+ARCHIVE: ~/Dropbox/org/20240101T1212--agenda__archive.org

agenda viewのサーチを遅くしないように、このアーカイブファイルは、agendaを蓄積するファイルとは異なるディレクトリに置くなどして、サーチの対象に入らないようにしておく。

4. 設定例

init.elで

((setq denote-directory "~/Dropbox/org/"))
((setq org-agenda-files "~/Dropbox/org/agenda/"))
((setq org-default-notes-file "~/Dropbox/org/agenda/20240101T121212--agenda.org")) ;org-captureでファイル名を省略したときのデフォルト。基本、予定はこのファイルに蓄積する。denote形式のファイルであることがポイント。

agenda fileの冒頭で

#+CATEGORY: agenda  
#+ARCHIVE: ~/Dropbox/org/20240101T1212--agenda__archive.org

Date: 2024-06-11 Tue 13:12

Author: Yoshinori Ueeda

Created: 2024-06-16 Sun 10:56

Validate