Rob Streeting has a very interesting post on building the ideal Emacs journal. He was an Org-roam user but discovered that he never seemed to add links to the data he needed later. He began building the ideal journaling system in his head but discovered that org-journal
did almost everything he wanted.
His original plan was to modify the source code to mold org-journal
to fit his workflow but he soon realized that all he had to do was write a wrapper function around org-journal-new-entry
. It was almost like advising the function except that he called his wrapper function directly rather than org-journal-new-entry
to add a new entry.
He had four types of entries he wanted to make:
- Tasks
- Notes
- Meetings
- Breaks
His wrapper code takes care of clocking him into and out of events when he adds a new entry. It also insists that his cursor be on a TODO task when he chooses a Task event. That automatically creates a link from the journal entry back to the TODO and clocks him into the TODO task.
He includes the code for his wrapper function at the end of his post so you can see how he did it. It’s quite clear and easy to follow and could easily serve as a go-by for your own custom org-journal
. He’s added some tweaks since but he provides a pointer his Github repository so you can his latest version.
I really like his system and am half tempted to replace my own system with something similar. I have a journal file but it’s more general and doesn’t use org-journal
so it would be a major effort to migrate. Regardless, it’s a good post with some nice ideas so take a look.