I grow under the sun. When I am not writing code, I am either drinking wine or drinking tea (with these little cups). Cheese is my bread and tracking everything in Emacs is my cheese.
P.S. d12frosted means dice with 12 sides from the Chessex™ frosted series. I used to play. Just a little bit.
Capturing is one of the most important activities in the task management process. Previously we talked about storing and querying tasks and now it’s time to cover capturing of tasks, meeting notes and inbox.
Please note that the goal is not to discuss GTD or any other methodology, but rather to discover how org-roam combined with everything we talked previously may help you to improve your capturing process regardless of methodology you are using.
In one of the previous articles (Vol 3 to be precise) we talked about automatic
setup of filetags
, so each of the task in note related to a person is
automatically tagged thanks to tag inheritance. Then, in Vol 4 we talked about
automatic tagging of tasks whenever a person is mentioned either in the title or
the body of some task. This all makes org-agenda
matching capabilities really
useful for when we want to see the list of all tasks related to specific person.
In this article, we are going to write a small utility function that asks user
to select a person and then presents and org-agenda
buffer with tasks related
to selected person.
Believe me, intro is longer than the content!
Change Log:
[2021-03-02 Tue]
: Update naming convention to match personal configurations.[2021-05-10 Mon]
: Update post to reflect changes in org-roam v2. Previous
version of this article is available on GitHub.In previous articles (Vol 1 and Vol 2) we talked about moving tasks from regular
org-mode
files to org-roam
notes. This relied upon adding all org-roam
files to org-agenda-files
, which doesn’t scale well, as when you build an
agenda buffer, it needs to traverse each file. Once you have more than 1k notes,
things become sluggish.
In my experience, once I reached 1200 note files, org-agenda
constantly took
more than 50 seconds to build, rendering this tool completely useless. But then
I realised that only 3% of those files actually contain any TODO
entries, so
there is no need to traverse whole org-roam-directory
!
In this article we are going to optimise org-agenda
back to less than 1 second
by dynamically building org-agenda-files
list to include only files with
TODO
entries. All thanks to the power of org-roam
and some hooks I am going
to describe.
Change Log:
[2021-03-02 Tue]
: Update naming convention to match personal configurations.[2021-03-08 Mon]
: Gustav shared that org-element-map
has an optional
parameter first-match
that works like seq-find
, meaning that
vulpea-project-p
can be optimised.[2021-05-10 Mon]
: Update post to reflect changes in org-roam v2. Previous
version of this article is available on GitHub.[2021-08-19 Thu]
: Gustav proposed to modify buffer only when tags have
changed. Code was updated accordingly (both in the post and on GitHub Gist).[2021-09-07 Tue]
: rngesus-wept proposed an interesting solution on how to
make sure that any extra stuff in org-agenda-files
are not wiped out.In the previous article we covered automatic tagging of notes related to a specific person, and today we are going to cover automatic tagging of an org-mode heading upon insertion of link related to a person. To put it simple, when I mention someone in the task, I would love this task to be automatically tagged with that persons name. As they say, it’s better to see once, than imagine multiple times, so here is a screencast.
Change Log:
[2021-01-24 Sun]
: Since some of the functionality mentioned in the original
article was merged to org-roam
, all code is updated to reflect the current
state of affairs.[2021-03-02 Tue]
: Update naming convention to match personal configurations.[2021-05-10 Mon]
: Update post to reflect changes in org-roam v2. Previous
version of this article is available on GitHub.[2021-11-19 Fri]
: Update post to reflect inclusion of vulpea-insert
function to vulpea
library. You can find previous version of this article in
git history.In the previous articles (vol1 and vol2) we walked the path to org-roam and
solved the issue with garbage in the category column of agenda. Today we are
going to explore meta projects dedicated to specific person, tag inheritance and
moving such projects to separate org-roam
files. As result, we will have code
for automatic tagging based on the title.
Aside from regular meta projects (like personal blog) I also create meta projects for people and locations. This is helpful, because some of the tasks are really related to someone specifically. For example, when I need to return a borrowed book, I just create a task for this.
* Frodo Baggins :@FrodoBaggins:
** TODO Return 'The Lord of the Rings' book
** TODO Farewell party :PROJECT:
It feels like Mr. Frodo is about to live Shire. So we are going to setup a
farewell party for him.
*** TODO Talk to Samwise Gamgee :@SamwiseGamgee:
*** TODO Talk to Meriadoc Brandybuck :@MeriadocBrandybuck:
*** TODO Talk to Peregrin Took :@PeregrinTook:
*** TODO Tie a pair of wool socks
I am not sure where he is going, so a pair of warm wool socks should be good.
At least they can be used to protect bottles of wine during journey. That is in case Frodo doesn't wear socks. But how could it be? Everyone does!
Change Log:
[2021-01-24 Sun]
: Since some of the functionality mentioned in the original
article was merged to org-roam
, all code is updated to reflect the current
state of affairs.[2021-03-02 Tue]
: Update naming convention to match personal configurations.[2021-05-10 Mon]
: Update post to reflect changes in org-roam v2. Previous
version of this article is available on GitHub.In the previous article we set a ground for moving tasks to org-roam, and
encountered an issue with visual garbage in the agenda buffer. Namely,
org-roam
file id as part of the category. In this article, we are going to
explore the means to overcome this issue.
Change Log:
[2021-03-02 Tue]
: Update category extraction function to use TITLE
of the
note and enforce length limit. Kudos to Tim Ruffing for the idea.[2021-03-02 Tue]
: Update naming convention to match personal configurations.[2021-05-10 Mon]
: Update post to reflect changes in org-roam v2. Previous
version of this article is available on GitHub.org-mode is a simple outliner for note taking and list management. It doesn’t impose any complex features on users. This is something users excel at by themselves. My suggestion is to continue this tradition and discover task management capabilities in org-roam, an org-mode extension for non-hierarchical notes management.
Change Log:
[2021-05-10 Mon]
: Update post to reflect changes in org-roam v2. Previous
version of this article is available on GitHub.Anyone would agree that typing #+BEGIN_SRC ... #+END_SRC
blocks manually feels
strange.
In order to make life easier, some people implement helpers to insert these
blocks. For example, Chris Done has org-begin-template
function in his
configs. Other people use yatemplate to create generic or specific templates for
blocks.
But what is most fascinating, is that org-mode
bundles with templates for some
structural elements like these blocks. And instead of copy-pasting solutions
into your .emacs
file, take a look at Structure Templates.
It is funny how I vainly try to escape devilish org-mode
. I have several major
concerns regarding it as a GTD system and a note taking system, but after all,
whatever I try to replace it with, I always return to org-mode
. Mostly because
it’s simple (at least at the top level) and makes me feel more confident about
my thoughts, tasks and the future. But on the other hand, it makes me really
angry because it forces me to make some uncomfortable decisions.