Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/akirak/org-memento

(WIP) An opinionated framework for time management with Org mode
https://github.com/akirak/org-memento

Last synced: 7 days ago
JSON representation

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

Awesome Lists containing this project

README

        

* 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 [[file:LICENSE][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.