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
に含める。キーワードに、 agenda
や task
を入れておくといいだろう。
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