Cadey is coffee
<Cadey> Hello! Thank you for visiting my website. You seem to be using an ad-blocker. I understand why you do this, but I'd really appreciate if it you would turn it off for my website. These ads help pay for running the website and are done by Ethical Ads. I do not receive detailed analytics on the ads and from what I understand neither does Ethical Ads. If you don't want to disable your ad blocker, please consider donating on Patreon or sending some extra cash to xeiaso.eth or 0xeA223Ca8968Ca59e0Bc79Ba331c2F6f636A3fB82. It helps fund the website's hosting bills and pay for the expensive technical editor that I use for my longer articles. Thanks and be well!

My Org Mode Flow

Read time in minutes: 6

At almost every job I've worked at, at least one of my coworkers has noticed that I use Emacs as my main text editor. People have pointed me at IntelliJ, VS Code, Atom and more, but I keep sticking to Emacs because it has one huge ace up its sleeve that other editors simply cannot match. Emacs has a package that helps me organize my workflow, focus my note-taking and even keep a timeclock for how long I spend working on tasks. This package is called Org mode, and this is my flow for using it.

Org mode is a TODO list manager, document authoring platform and more for GNU Emacs. It uses specially formatted plain text that can be managed using version control systems. I have used it daily for about five years for keeping track of what I need to do for work. Please note that my usage of it barely scratches the surface of what Org mode can do, because this is all I have needed.


My org flow starts with a single folder: ~/org. The main file I use is and it looks something like this:


* Doing
** TODO WAT-42069 Unfrobnicate the rilkef for flopnax-ropjar push...
* In Review
** TODO WAT-42042 New Relic Dashboards...
* Reviews
** DONE HAX-1337 Security architecture of wasmcloud
* Interrupt
* Generic todo
* Overhead
** 09/08/2020
*** DONE workday start...
*** DONE standup...

Each level of stars creates a new heading level, and these headings can be treated like a tree. You can use the tab key to open and close the heading levels and hide those parts of the tree if they are not relevant. Let's open up the standup subtree with tab:

*** DONE standup
    CLOSED: [2020-09-08 Tue 10:12]
    CLOCK: [2020-09-08 Tue 10:00]--[2020-09-08 Tue 10:12] =>  0:12

Org mode automatically entered in nearly all of the information in this subtree for me. I clocked in (alt-x org-clock-in with that TODO item highighted) when the standup started and I clocked out by marking the task as done (alt-x org-todo with that TODO item highlighted). If I am working on a task that takes longer than one session, I can clock out of it (alt-x org-clock-out) and then the time I spent (about 20 minutes) will be recorded in the file for me. Then I can manually enter the time spent into tools like Jira.

When I am ready to move a task from In Progress to In Review, I close the subtree with tab and then highlight the collapsed subtree, cut it and paste it under the In Review header. This will keep the time tracking information associated with that header entry.

I will tend to let tasks build up over the week and then on Monday morning I will move all of the done tasks to, which is where I store things that are done. As I move things over, I double check with Jira to make sure the time tracking has been accurately updated. This can take a while, but doing this has caught cases where I have misreported time and then had the opportunity to correct it.


Org mode is also able to generate tables based on information in org files. One of the most useful ones is the clock table. You can use these clock tables to make reports about how much time was spent in each task. I use these to help me know what I have done in the day so I can report about it in the next day's standup meeting. To add a clock table, add an empty block for it and press control-c c on the BEGIN line. Here's an example:

#+BEGIN: clocktable :block today

This will show you all of the things you have recorded for that day. This may end up being a bit much if you nest things deep enough. My preferred clock table is a daily view only showing the second level and lower for the current file:

#+BEGIN: clocktable :maxlevel 2 :block today :scope file
#+CAPTION: Clock summary at [2020-09-08 Tue 15:47], for Tuesday, September 08, 2020.
| Headline                    |   Time |      |
| *Total time*                | *6:14* |      |
| In Progress                 |   2:09 |      |
| \_  WAT-42069 Unfrobnica... |        | 2:09 |
| Overhead                    |   4:05 |      |
| \_  09/08/2020              |        | 4:05 |

This allows me to see that I've been working today for about 6.25 hours for the day, so I can use that information when deciding what to do next.

Other Things You Can Do

In the past I used to use org mode for a lot of things. In one of my older files I have a comprehensive list of all of the times I smoked weed down to the amount smoked and what I felt about it at the time. In another I have a script that I used for applying ansible files across a cluster. The sky really is the limit.

However, I have really decided to keep things simple for the most part. I leave org mode for work stuff and mostly use iCloud services for personal stuff. There are mobile apps for using org-mode on the go, but they haven't aged well at all and I have been focusing my time into actually doing things instead of configuring WEBDAV servers or the like.

This is how I keep track of things at work.

This article was posted on M09 08 2020. Facts and circumstances may have changed since publication. Please contact me before jumping to conclusions if something seems wrong or unclear.

Tags: emacs

This post was not WebMentioned yet. You could be the first!

The art for Mara was drawn by Selicre.

The art for Cadey was drawn by ArtZora Studios.

Some of the art for Aoi was drawn by @Sandra_Thomas01.