Building an Org-mode Workflow: Timestamped Notes

by Jeff Bradberry

I love having logs for things that can be checked later on if need be, and so I enabled logging state changes and rescheduling into the LOGBOOK drawer way back in Scheduling and Deadlines. But since I have this nifty logbook, why not use it to capture yet more information? I wanted to be able to add my own custom timestamped notes. Fortunately, Org mode makes this easy.

My first known uses of this feature date back to 6 Mar 2023 for the state change notes, and 16 Mar 2023 for the arbitrary notes.

Usage

The obvious incremental step up from what I was already doing is to capture context when changing tasks from TODO to DONE. Perhaps this might be some info about why the change is happening, or perhaps some nuance that might need to be addressed in a separate task (this one particularly comes up in my pull request review tasks).

The way to record a note with the state change log item is to add the prefix C-u to the org-todo command (C-u C-c C-t). This opens up a buffer to prompt you to fill in a note, and …

Continue reading

Building an Org-mode Workflow: Priority Cookies

by Jeff Bradberry

As I came to track more and more items using Org mode, I realized that I needed to have a way of raising up items or filtering down to the things I should be concentrating on. I needed prioritization.

My first known use of this feature dates to 4 Jan 2023.

Usage

Priority cookies are just a bit of extra text that goes between the TODO or other tag at the beginning of a headline, and the text of the headline. They are placed between square brackets, and are prefaced with a # character. It gets formatted like so:

** TODO [#B] look over 13398 and 6253

These priority cookies can, of course, be manually typed, but there are also keybindings that allow you to set them. The ones I usually use are S-UP (to raise the priority) or S-DOWN (to lower it). You can also use C-c ,, which prompts you for the level to directly set it (or unset, using SPC) instead of having to cycle through. These keybindings work in the agenda view as well as directly in the org file.

As indicated in the docs, priorities are only meaningful for sorting items …

Continue reading

Building an Org-mode Workflow: Epic Organization

by Jeff Bradberry

Not long after my last Org-mode post, we started planning for a new release cycle at work. Previously, I was tracking individual issues or small features as level-1 headlines with action items immediately underneath as level-2 headlines with the TODO keyword. Now though, I was going to need to keep track of an entire collection of interrelated features (an 'epic' in the Agile terminology), not all of which would be things I would work on. Clearly I needed to adjust some things to keep a handle on it all.

Usage

The New Structure

This process added a couple of layers of complexity, so I started with deeper nested headlines.

Roughly speaking, level-1 headlines now each correspond to a high-level epic, which would then contain multiple level-2 story or individual feature headlines. For a while I also created level-2 headlines that would capture notes and so forth, but as things proceeded I moved away from that (more on this in the next sub-section).

* Generalized solution for adding/removing execution capacity
- https://issues.redhat.com/browse/AAP-2238
- https://issues.redhat.com/browse/AAP-493 (pushed to 4.4)
- https://issues …

Continue reading

Building an Org-mode Workflow: Lists and Checklists

by Jeff Bradberry

I've reached a point where I need to organize things at a level lower than individual tasks. So for that, I've started making use of the lists and checklists features of Org mode.

Usage

As mentioned in the part about notes in Part 1, I've been using unordered lists from the beginning. There are other options for bullets to use with these, but so far I've only been using -.

While it is easy enough to just manually type these out (and I still do some of the time), the thing I have started to do recently is to make use of the keybindings to insert them instead. M-RET will add a new list item if your cursor is already in a list. A typical thing I might then combine with that is M-RIGHT to increase the indent of the new item, to turn it into the start of a sub-list. The only awkwardness then is starting the list, since M-RET will just create a new headline if you aren't already in a list. Technically you could turn that headline into a list item with C-c -, but I always just manually type the dash …

Continue reading

Building an Org-mode Workflow: Scheduling and Deadlines

by Jeff Bradberry

As I mentioned at the end of part 2, I want to schedule things I need to do on the calendar. So, this week I explored the deadlines and scheduling features.

Usage

There are two types of these timestamps that you can give to your agenda items — schedules and deadlines. Schedules are for events that happen at a particular time, or for when you want to set aside time to work on something particular. Deadlines are exactly what they sound like — a date and/or time something is due by. Both of these seem to behave nearly identically, and you can apply either type or both at the same time to an item.

In order to apply one of these timestamps to an item, use C-c C-s for a schedule, or C-c C-d for a deadline. This will open up a little calendar frame, and will request input in the mini-buffer.

Org-mode schedule input calendar frame and mini-buffer

This prompt is fairly intelligent about what date and time specifications it will take.

When complete, the result will show up as an all-caps keyword immediately under the headline. It must be the next line, with no other lines between it and …

Continue reading

Building an Org-mode Workflow: Multiple Files and Archiving

by Jeff Bradberry

As I mentioned at the end of part 1, I quickly began to feel the need to break things up into multiple files to make things more manageable. So, this week I explored the refile and archiving features.

Usage

To begin with I wanted to break up my items into categories, one category per file. After some waffling, the categories I settled upon for work were:

  • devel.org: Every item that is going to involve me personally writing code.
  • reviews.org: Coding work owned by other developers, that I need to review or pair with them on.
  • watching.org: Items that I want to keep an eye on, but that aren't yet ready to be worked on or prioritized
  • professional.org: Professional development, giving talks, mentoring, or other things of that nature.
  • other.org: Procedural things that don't comfortably fit in any of the other categories, e.g. talking to IT about problems with one of my accounts.

While I could have just cut and pasted items from my original todo.org file into their respective new files, I wanted something a bit more streamlined. It seemed like the org-refile command (C-c C-w …

Continue reading

Building an Org-mode Workflow: Basic TODOs

by Jeff Bradberry

I've been thinking recently that I need to adopt a task management system. As a long-time Emacs user, it should be natural for me to also be a user of Org-mode, an Emacs mode for outlining, note-taking, task management, and more. Building a system around an add-on of a program I already have open every day is a major plus and ought to encourage me to keep up with it. It will also be not too far different from the simple ad-hoc text files that I have been using, but with the addition of some programmed functionality that will improve my ability to quickly take an action and then move on without having to think about it too much.

I'm starting here with a fairly small workflow that does the bare minimum of what I need, then I will incrementally build up new pieces (and write a blog post about each as I go) as I discover new things that I want to be able to do.

Usage

For this first phase, I threw everything together into a single file, called simply todo.org. But since I need to configure autodetection of org …

Continue reading