Productivity in Emacs minus Org-mode

Table of Contents

1. Always start from the bare minimum

The work environment nowadays value people who are ``productive''. If you are more ``productive'', i.e. have more output than other people at your pay grade, you feel better about yourself and your job. That could be good for your self-esteem, although not necessarily so for your career and health. But we are just people, with the same tendency to feel tired after prolonged and repetitive work. So a myth was invented, which states that with right techniques and mindsets, one can be more productive.

Thus, we have a cult of productivity tools, even suites. We try sophisticated tools with their respective philosophies and approaches to task management and productivity. Then we blame ourselves for not sticking to the theoretically perfect systems. Then we stop cleaning up our inboxes and capturing world-changing ideas.

Arguably, Org-mode, despite being free and free software, also cater to this sentiment when dealing with tasks. A large part of its features are for managing our busy lives effectively. However, that also means each task managed by it comes with considerable management overhead – sorting, scheduling, adding properties, re-scheduling, etc., etc. One feels in control of everything, but in fact we are only in control in the representation of those tasks.

Sometimes it helps to start from the simplest form. Reducing each task to exactly one line of text – no subtasks, no tags, no priority labels, no assignees – forces one to think what it is really about, what purpose does it serve, and whether it is important enough.

And most people don't need to make it more complicated than that. Doing so is only making busywork that invites more busywork. A text file called todo.txt (just a file, not that system) would serve us perfectly well.

If that sounds too spartan for you, the approach below is fancier and more emacs-y. In exchange, you get multiple task lists, a day planner, and a decent calendar/agenda. If you are interested, read on.

2. Task management

The new todo-mode is ``preinstalled'' with Emacs newer than 24. It can be used as a minimalism, single-file to-do list, but also supports some sophisticated features so that it works for 80% of people.

2.1. The file-category-item structure

I find it helpful to have multiple to-do files, some with multiple categories. But this is a result of my working style.

In the post-subprime, post-trade-war, post-Special-Military-Operation, post-Trump-and-MAGA economy, like many others, I have to take more than one job to make ends meet. For me, it's three jobs at any time, sometimes 4. The past I would allocate 2 hours or so to each of them every day, then found that exhausting and unsustainable.

Recently, I give each of my commitments one or two days a week. On a given weekday, I only do tasks that belong to one job, usually only one task on that day. Therefore, to set up one file for each of my jobs makes sense. In the morning, I just switch to the to-do file corresponding to that day's work, pick a task and start working. Other tasks are captured as they turn up.

2.2. Configuration

At this moment there really isn't much to configure, just tell Emacs where I would store the to-do files:

(setopt todo-directory "~/pim/")

By default, when you don't have any to-do file in that directory, todo-mode creates a Todo.todo for you. The Todo part can be changed by setting the variable todo-initial-file. But I'm going to name a few to-do files anyway.

Throw in some key bindings to make accessing to-do buffers faster:

(meow-leader-define-key
 [..sic..]
 '("tt" . todo-show)
 '("ti" . todo-insert-item)
 '("tj" . my/jump-to-todo))

(defun my/jump-to-todo ()
  "Wrapper for jumping to a todo category from anywhere."
  (interactive)
  (require 'todo-mode)
  (todo-jump-to-category 4))

Why a wrapper around todo-jump-to-category? Because by default it prompts categories in the current to-do file. More often, I need to jump to a different file. As I explained above, the categories are often different stages a task goes through, and I don't have to jump between categories within the same file that often.

2.3. Capture

When a task comes up, I press SPC t j to choose a file (work area or project) and a category (milestone or step) for it. A buffer containing the chosen file listing to-do items in the chosen category will pop up. Here I can press i i to insert the new task. Emacs will ask where in the list I want the task to be. The top one will be numbered 1, which also means it has the highest priority.

2.4. Sorting and editing

As time goes by, I will have more and newer information about the tasks, which should be presented in the following three ways:

  1. The category and file in which the task resides;
  2. The description and any additional text;
  3. The header;

By default, the task header only has one type of information: a date. So I'll write about editing it in Scheduling tasks.

Sorting means putting tasks to files and categories that they should belong to. To move a task to another category in the same file, press m. To move it to another file, press C-u m. One can also press C m to move a whole category to another file.

Editing a task usually means one wants to incorporate new information relevant to the task. Maybe the task itself has changed, or there are additional details. In the former case, I want to edit the task line. This can be done by pressing e e when the point is anywhere in the task description.

If one wants to add notes to the task, one way would be to append text right after the task description. But this soon becomes unwieldy and error-prone. Say, I want to buy a certain kind of tuna, and it is only on sale at a certain store at a specific address. To add the address as a note, I find the task, press e m to open a multiline-editing buffer. Here I can add notes to the task. The additional text is indented, so Emacs knows it is an attachment to the unindented task. If your text starts without any indent character (tab/space), it is recognized as an independent task.

2.5. Marking done

2.6. Deleting

2.7. Archiving

3. Day planning

3.1. Configuration

3.2. Accessing your diary

3.3. Editing the diary

3.4. Scheduling tasks

3.5. Time-tracking and done list

4. Appointments and anniversaries

5. Navigating your days