All in with org-mode
After I posted about using org-mode, Jack Baty wondered (somewhat
tongue-in-cheek) how I managed with keeping only some of my tasks in
org-mode
. Actually, it wasn’t really a problem copying tasks across from
OmniFocus to enter into my journal entry for the day. However, I inevitably
started wondering whether I might be able to go the whole hog and use only
org-mode
for tasks. Would I lose track of things? Could I capture tasks
efficiently when away from my computer before I forgot about them? Would the
world explode into chaos? Well, if you don’t feel like reading further, the
answers to those questions are No, Yes, and Quite Probably, But Not Because I’m
Using org-mode.
I started cautiously. I kept my OmniFocus database intact and updated for a
while just in case it all went wrong. I started by creating three files, and
re-creating my existing tasks from OmniFocus. The files were emacs.org
for
noting down things I want to tweak in Emacs (plus notes on things I’ve learned
about it), personal.org
for personal tasks, and work.org
for — well, you
get the idea. I organised the work file into sections corresponding to research,
teaching and admin, and then created projects within each of those, which are
really just hierarchical headings which I created a custom PROJ
todo keyword
for. I added these files to my list of agenda files (so their todos would show
up on the org-agenda
) along with the tasks in my journal files.
A key part of the puzzle was putting the files in an iCloud folder so that they
would sync with the beorg iOS application and sync between computers. I can’t
say enough good things about beorg. The author (Matthew Kennard) has done an
amazing job of translating the key org-mode
features into formats which make
sense on a mobile device, and making it feel very natural. You can use a lot of
the features for free to see if it is for you, but I strongly recommend paying
the very reasonable yearly fee (I think it was under £10 a year as far as I
recall), as it unlocks a lot of great features like having different capture
templates and being able to view, start and stop timers within the app. Capture
works very well, and beorg integrates superbly with Shortcuts, so you can set up
nifty custom workflows. I used this tutorial as a base to set up a custom
Shortcut that I can trigger from the share sheet in Safari on iOS to capture the
webpage I’m on. I’ve also set up a Drafts workflow so I can enter stuff there
(by dictation if necessary) and send it over to beorg. So, that fear was allayed
— I can easily capture stuff on the go, as well as view my upcoming tasks and
even edit them if the need arises. I only miss two very minor things in beorg:
you can only refile to the file level (not to a header within a file), and I
can’t view my journal in it as beorg only searches the root directory, not
subdirectories. Neither are real problems for my workflow, and given the steady
pace of updates, it is possible that they will appear sometime in the future.
My other worry was about losing track of things. Again, I need not have worried
about this. I’ve been using this system now for several weeks, and if anything I
have felt more on top of what I need to do in a busy period. In particular, I
have found it easier to do effective reviews each week to pick up projects
which have stalled a bit, and make sure that I am aware of upcoming deadlines
and so on. They key is to use org-agenda
as much as possible, creating a
variety of custom views so that you can slice and dice your files and see just
the level of detail you need at that moment.
As I have adopted org-mode
, I have slightly altered the way I organise my
tasks into files. I found that the work.org
file was getting rather big, so I
split it into smaller files, with most of my big work projects getting their own
file, each of which has a ‘Tasks’ heading and a ‘Notes’ heading. This has made
it much easier to keep all the related information together, which — after all
— is a key benefit to org-mode
. Early on, I discovered that if you add a
header line to the file like this #+CATEGORY: work
, each of the items in that
file has that category defined (rather than the file name, which is the default)
and printed to the left of the files’ entries in the agenda. This makes it
possible to split your work (or whatever) tasks across multiple files, and yet
make decisions about their visibility based on this category. In the agenda, you
can put your cursor on a ‘personal’ category entry, hit <
and then only
personal tasks are shown in the agenda. I sometimes do this on the fly for my
work agenda (which shows both kinds), but I have also created a ‘Personal’ daily
agenda which only lists personal items. If I have to look at work at the
weekend or in the evenings, I can use the work agenda, but when I am not at work
I really don’t want to see those items.
My general workflow is fairly simple, but I feel on top of what I need to do. I
capture tasks, either through beorg or Drafts on iOS, or via an Alfred workflow
on macOS. I have a couple of Alfred workflows, one of which can capture selected
text and website details to the clocked task, converting HTML to org-mode
markup along the way using pandoc
. This is great for quickly gathering
information to add to the tasks I am currently working on, without breaking my
focus (it saves the information immediately without bringing up the capture
window).
Each morning, I look at my daily agenda (either in beorg or in Emacs itself). I
use deadlines very sparingly: if someone is going to yell at me, or if there is
no point in doing the task after a certain date, I add a deadline, but otherwise
I tend to organise my work by using SCHEDULED
dates. When I look at the agenda
each day, I will have already scheduled tasks for the current day, but I may
reschedule some of them if I have been over-optimistic, or if other things have
come up. The nice thing is that if you don’t complete a scheduled item on one
day, it will automatically appear the next day, with a marker telling you how
many times it has been automatically re-scheduled. I find that a useful prompt
to remind me to get my act together and actually do the thing, or else
reschedule it properly to a later time. I open the agenda a lot so I have bound
my work agenda to F12 and my personal agenda to C-F12. I added popup rules
to these windows to get them to open a slightly smaller split window to the
right, like so:
;; Popup rules
;; Make org-agenda pop up to right of screen, 45% of width
(set-popup-rule! "^\\*Org Agenda" :side 'right :size 0.45 :select t :ttl nil)
;; Same for org-ql
(set-popup-rule! "^\\*Org QL" :side 'right :size 0.40 :select t :ttl nil)
During the day I work on stuff, clocking into major tasks as I go to get a feel
for how I am spending my time and how long tasks actually take versus how long
I think they will take. Being clocked in to a task also means I can shoot
notes straight to the current task to update it with information as I go. This is
particularly helpful if I don’t get it done in one day and have to come back to
it. When I clock into a task it also automatically changes the keyword to INPR
(for ‘in progress’), so I can easily spot ‘open’ tasks that are half-completed.
I can mark tasks done on either my phone or Mac, and also stop or start timers
from either, which is particularly helpful for those times when I have left the
office for a meeting and realise I have left a timer running.
Once a week, on Friday, I do a weekly review. I use a custom weekly agenda and
some other views which show me just upcoming deadlines, items which have a
WAIT
keyword or the tag ‘followup’, or stuck projects which have no scheduled
tasks within them. I use this to look at the upcoming week and schedule tasks
for that week in advance. In addition to the custom agendas I have set up (many
with the help of org-super-agenda), I have also started defining a menu of saved
queries with org-ql, which enables similar kinds of searches. Some things are
easier to define in org-ql than org-super-agenda, and the former also allows you
to construct on the fly queries with org-ql-search
which can be handy. I find
them both useful, and between them I am confident that I have an accurate
overview of what I need to do and when, and that I can find specific things at
any time, no matter how big my org files get.
I’m really happy that I have dived into org-mode
full time. I don’t miss
OmniFocus at all (excellent though that app is). I’m getting a lot of value out
of having all my notes and tasks in one place so that I can easily find what I
did on a particular project days or weeks ago, or give myself a head-start on
picking up a task on a different day by leaving all the information I need in
one spot. I am continuing to use org-journal
, but now I can use org links to
point to a specific spot in my notes for more detail about a particular entry. I
even wrote a little elisp function to grab all the tasks I have completed today
and paste them as a plain text list in the current org-journal
entry. I find
this helpful to look back on if I need to tell someone else when I completed
something.
I think part of my current feeling of comfort about trusting my life to
org-mode
is that I am getting more proficient (gradually!) with elisp, and
also spending more time in Emacs. That makes it seem much more natural to do
everything there.