Skip to content

(WIP) An opinionated framework for time management with Org mode

License

Notifications You must be signed in to change notification settings

akirak/org-memento

Repository files navigation

org-memento

I’m probably not going to submit this package to GNU/nonGNU ELPA or MELPA. It is hosted as a public repository for a technical reason, but it’s not meant for attracting users. The code base is not well-tested, and it is difficult to develop new features without regression.

Still, it serves as a prototype for seeking ideas for time management inside Emacs with Org mode, and I am using it on weekends (not at work, unfortunately). Maybe I will implement a backend in a statically typed language (e.g. Haskell, OCaml, etc.) in the future to make it more reliable.

Therefore this project is not recommendable to general users, but you can use the code for reference. See also license.

What it does and how it works

As this project is not in a usable state yet (and it is probably not going to be), it can only serve as a proof of concept. I will share the gist of this project.

org-memento integrates seamless /time blocking/​ into Emacs. org-mode already has time tracking with org-clock.el and also supports timers and notifications, but org-memento adds a separate layer for time blocking to Emacs. Rather than you clock into individual tasks, you first define blocks which are actually a set of buckets for tasks and track time spent on them. Those buckets are defined in a single journal file, which is an org-mode file with date headings in reverse chronological order. While Org is useful because each entry contains information needed to carry out the task, buckets don’t contain any information but timing. They are cheap, so you can delete them without worries. The core functionality of org-memento is to display a timeline of time blocks inside Emacs.

It is unlikely that you consistently define all budgets beforehand. In real life, you have urgent tasks and other spontaneous activities. You usually don’t properly schedule them, but it distracts you and consumes some amount of time. Normal people can’t avoid it. org-memento lets you handle that kind of situation. The timeline interface also displays activities in org-mode files. You can select a continous sequence of activities and group them with a time block. You first get it done, and then describe the sequence of activities.

A typical workflow with org-memento is as follows:

  1. In the morning, check in to the journal of org-memento.
  2. Work on tasks.
  3. When you finish the day, check out from the journal.

Limitations with the system and a possible solution

Even though the above workflow works seamlessly for *tracking*​ time, I have come to wonder what would be a good way to *control*​ time budgets. It also has an issue of synchronization with external systems, e.g. online calendars.

I am thinking of developing a backend server for better planning of budgets. The server language can be Elixir, OCaml, or even something else. Until I implement the backend, I am not going to submit this Emacs Lisp package. Life is short, so there is a chance I won’t finish the project within my lifetime.

About

(WIP) An opinionated framework for time management with Org mode

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages