org-mode-crate icon indicating copy to clipboard operation
org-mode-crate copied to clipboard

Plug and play org-mode configuration. Based on my workflow, which in turn is based on Bernt Hansen's incredible tutorial "Organize your life in plain text" (http://doc.norang.ca/org-mode.html)

#+OPTIONS: toc:nil

  • Org Mode Crate

This repository contains my configuration for Org Mode.

I've strived to make this configuration super simple to install and use, if you face any problems please open an issue and let me know about it.

** Caveats

  • This configuration is ONLY known to work with Emacs 27.2 and above. You are on your own with older versions of Emacs.

  • This configuration requires Org Mode 9.4 and above.

** Install

*** Manual Install **** Get the code: #+begin_src text $ git clone git://github.com/vedang/org-mode-crate.git /path/to/org-mode-crate #+end_src

**** Add the following lines to your .emacs #+begin_src emacs-lisp (add-to-list 'load-path "/path/to/org-mode-crate/") (setq org-directory "/path/to/org-files-dir") ;; Agenda does not have a key-binding by default. ;; Provide one as a starting point. (global-set-key (kbd "") 'org-agenda) (require 'org-mode-crate) #+end_src

**** Press F12 to get started with your agenda

*** TODO Install via Melpa *** TODO Install via El-Get *** Install in DOOM emacs #+begin_src emacs-lisp ;; in packages.el (package! org-mode-crate :recipe (:host github :repo "vedang/org-mode-crate")) ;; in config.el (use-package! org-mode-crate :init (global-set-key (kbd "") 'org-agenda) :config (require 'org-mode-crate))

#+end_src

** Workflow notes

  • Create and maintain as many files in your org-directory as you want.
  • Currently, I don't handle recursively loading org files, so your org-directory should be a flat structure.
  • Tasks are categorized as follows:
    • Important tasks: These tasks should be tagged with =important=.
    • Next tasks: In any given project, tag the next thing you want to do with the tag =next=. You can have many =next= tasks, but ideally you should have only one. Whenever a task goes into WORKING state, it automatically gets the =next= tag. Moving to any other state automatically removes this tag.
  • The following hotkeys are provided for quick tagging: #+begin_src emacs-lisp (setq org-tag-alist '(("next" . ?x) ("notes" . ?n) ("important" . ?i) ("action_items" . ?a) ("joy" . ?j) ("waiting" . ?w))) #+end_src

** Optional notes

  • You can use the convenience function `bh/punch-in' (bound to = i=) to clock in a predetermined default task. All you need is the following one time setup:
    • Go to the org-task you want to use as the default task.
    • Give this task an org-id by running the function =org-id-get-create= #+begin_src emacs-lisp M-x org-id-get-create #+end_src
    • Copy the ID (stored in the task properties) and add the following line above =(require 'org-mode-crate)= #+begin_src emacs-lisp (defvar bh/organization-task-id "<task_id>") #+end_src
  • Now when you start org-mode, you can press = i= to clock in the default task.