Getting Things Done with Org Mode

Table of Contents

Work in Progress.

File Structure

The below is how I currently have my org files organized.

org
├── archive
│   ├── gtd.org_archive
│   ├── projects.org_archive
│   ├── someday.org_archive
│   └── tickler.org_archive
├── blog
│   ├── article
│   │   ├── article1.org
│   │   ├── article2.org
│   │   ├── article3.org
│   │   ├── article4.org
│   │   └── article5.org
│   ├── index.org
│   ├── js
│   │   └── basic.js
│   ├── sitemap.org
│   └── styles
│       └── basic.css
├── gtd.org
├── inbox.org
├── journal.org
├── maybe.org
├── projects.org
├── ref
│   ├── client1
│   │   ├── Task1
│   │   │   ├── Task1.org
│   │   │   └── resource
│   │   │       └── Task1.overview.png
│   │   ├── Task2
│   │   │   └── Task2.org
│   │   ├── journal.org
│   │   └── time.org
│   ├── client2
│   │   ├── Task1
│   │   │   ├── Task1_Requirements.txt
│   │   ├── Project1
│   │   │   ├── Task1
│   │   │   │   ├── Task1.org
│   │   │   │   └── Task1Diagram.png
│   │   │   ├── Task2
│   │   │   │   ├── Task2.txt
│   │   │   │   ├── Task2.sql
│   │   │   └── Task3
│   │   │       ├── Task3.xlsx
│   │   │       └── SubTask1
│   │   │           ├── SubTask1.sql
│   │   ├── Client2_Policy.docx
│   │   ├── journal.org
│   │   ├── time.org
│   ├── home
│   │   ├── CodeSnippets.org
│   │   ├── finance
│   │   │   ├── data
│   │   │   │   ├── Bank1.csv
│   │   │   │   ├── Bank2.csv
│   │   │   │   ├── card1.CSV
│   │   │   │   ├── card2.CSV
│   │   │   ├── finance.org
│   │   ├── journal.org
│   │   ├── RandomThoughts.org
│   ├── client3
│   │   ├── Task1
│   │   │   ├── Task1.vsdx
│   │   │   ├── Task1.docx
│   │   ├── journal.org
│   │   └── time.org
├── sitemap.org
├── someday.org
├── styles
│   ├── email.css
│   ├── htmlize.css
│   └── readtheorg.css
├── tickler.org
└── www
├── blog
│   ├── article
│   │   ├── article1.html
│   │   ├── article2.html
│   │   ├── article3.html
│   │   ├── article4.html
│   │   └── article5.html
│   ├── index.html
│   ├── js
│   │   └── basic.js
│   ├── sitemap.html
│   └── styles
│       └── basic.css
  • ~/org/
    • archive/
      • gtd.org_archive
      • someday.org_archive
      • tickler.org_archive
    • blog/
      • article/
        • AllAboutFoo.org
        • AllAboutBar.org
        • AllAboutBaz.org
      • index.org
      • js/
        • basic.js
      • css/
        • basic.css
      • sitemap.org
        • generated when publishing blog files
    • ref/
      • directory to store long term notes
      • has sub directories for separate clients and another called home for personal projects
      • organize in any way that makes sense
      • used to reference from agenda files because as you move files around you will end up breaking links
      • I usually include a journal for random notes from phone calls or stand ups
    • styles/
      • directory for css files that are used in exporting to html
    • www/
      • publish directory for blog and gtd
    • gtd.org
    • inbox.org
    • someday.org
    • maybe.org
    • sitemap.org
      • generated when publishing gtd files

The ref directory will be filed by project and can be filed in any way that makes sense and they can be rearranged as necessary.

Capturing to Inbox.org

The inbox.org file is the main entry point for anything that you want to add to your gtd files. The simplest way of doing this is by adding a headline to your inbox.gtd. Another useful way of doing this is by using org-capture.

Below is an example of an org capture template. You would want to include this in with-eval-after-load for org in dotspacemacs/user-config in your spacemacs config file.

(defun dotspacemacs/user-config ()
  (with-eval-after-load 'org
    ;; omittted code for brevity
    ;; org capture templates
    (setq org-capture-templates
          `(
            ("i" "Inbox" entry (file "~/org/inbox.org")
             ,(concat "* %?\n"
                      "  Entered on %U  %i\n\n"
                      "  %a\n"))
            ("t" "Task" entry (file "~/org/inbox.org")
             ,(concat "* TODO %?\n"
                      "  Entered on %U  %i\n\n"
                      "  %a\n"))
            ("v" "use clipboard" entry (file "~/org/inbox.org")
             ,(concat "* %?\n"
                      "  Entered on %U  %i\n\n"
                      "  %x\n"))
            ("c" "Call" entry (file "~/org/inbox.org")
             ,(concat "* %?\n"
                      "  Entered on %U  %i\n\n"
                      "  %a\n")
             :clock-in t
             :clock-resume t)
            ))))

and then from within spacemacs type SPC a o c or from within an org buffer ,c and then you may choose a template. You will then be within a temporary buffer where you can continue to type add anything you like. I will ordinarily add a title and then save the capture with ,,, and continue editing the capture from the inbox buffer.

Clocking Time and Generating Reports

I typically use tags to track different projects time and todo headlines to keep track of specific task time.

You can add tags to specific file as described here, or you can set org-tag-alist to something like the below to add them to all org files. Not all of the below tags are used for tracking time, later we will see how to generate reports from headlines with specific tags.

(defun dotspacemacs/user-config ()
  (with-eval-after-load 'org
    ;; omittted code for brevity
    (setq org-tag-alist '(("@home" . ?h) ("@computer" . ?c)
                          ("@work" . ?w)
                          ("qux" . ?q) ("baz" . ?b)
                          ("personal" . ?p) ("client1" . ?1)
                          ("client2" . ?2) ("client3" . ?3)
                          ("family" . ?f) ("dog" . ?d)))))

To generate a report for a sprint I would put the tstart and tend for the sprint start and end dates, to generate a summary for that sprint. To generate the clock report simply type ,, while the cursor is on the begin line.

#+BEGIN: clocktable :scope agenda-with-archives :tstart "<2019-03-30 Sat>" :tend "<2019-04-06 Sat>" :maxlevel 9 :link t :tags "client1" :match "client1" :narrow 300
#+END:

For a day by day breakdown you can add :step day.

#+BEGIN: clocktable :scope agenda-with-archives :tstart "<2019-03-30 Sat>" :tend "<2019-04-06 Sat>"  :maxlevel 9 :link t :tags "client1" :match "client1" :step day :narrow 300
#+END:

or simply type ,CR under any headline. for more information on see here or Tracking Time In Agenda.

Figure out how to store resources

When to do reviews and how often

There should be a weekly review where you look through your notes, calendar, post-its, text messages, any thoughts rattling around your head and put it into your Inbox for processing. D.A. suggests using Friday afternoon and give yourself a two hour block.

Do I keep a journal?

I like the journal at first, it was closest to the paper notebook I used to use. But even with tagging I am finding it inconvenient to have to reference up the tree for it. I think I will keep the date tree structure though for recurring event notes. perhaps kept in references folder/file

  • [ ] add part about how I use journals to store notes in date trees

integration with outlook

David Allen recommends organizing your emails outside of your Inbox, and keeping it in its own system. I know emacs can do email, but I think it would be better to keep it in outlook. It would be nice if there is a way I can link to maybe a outlook 365 page? Could download the message and store it but that seems excessive.

my-gtd-system-with-org-mode

talks about implementing gtd in outlook

integration with chat services

set up capture templates

Can I have different capture templates depending on which file the capture originates? org-context

what Task Keywords should i use?

record state changes for gtd i think we can drop the todo, all items in the gtd file are actionable what is important is identifying the next, in progress seems redundant when also clocking the time

Use Tags for contexts and determine what they should be

should there be a lot of different tags? Can they overlap?

orgmode-gtd

use @ for contexts tags to more easily differentiate them from regular tags.

how to handle archiving, separate file or tag

use a separate file for archiving, so they don't clutter your view, can maybe use one file to archive everything?

set up refile

Can you refile to an archive? how_do_orgrefiletargets_work orgmode-gtd

tickler/someday/incubate

I think i can maybe use multiple. Tickler would be things specific to days of the week and months. Someday is currently planned as a todo item. But I think that it should be either a list or a separate file. Is someday equivalent to a backlog if so, then I might want to keep in gtd.org else I might want to keep it separate. You can always switch to the other easily at a later time.

Incubate would be for things that there is nothing to do on now, but there might be later.

Incubate vs Someday vs Tickler

Someday: I'm actually going to do it, I just don't know exactly when. So, upgrading a server, painting the house - things that really do need to get done, but they aren't active right now.

Maybe or Incubate: I'd like to get it done, but there's no assurance that it will ever happen. I think there's a subtle difference between these two, but I just call them Maybe.

Tickler: Something that I don't need to think about until after a certain date. These may link to tasks that are active now - for example, I may send a review version of a document to someone, and set a tickler to remind me to remind them in three days that I'm waiting for a response.

Or ticklers may link to Maybe tasks - for example, I may have a tickler for September 1 that tells me, "Think about whether to order spring bulbs this year." I have a Maybe project where I've put all of my spring bulb thoughts, and this tickler reminds me to decide whether to activate this project this year, because if I don't activate it soon after September 1, it will be too late.

Need to set up script to pull what ever is the tickler for that day into the Inbox.

Tickler forty three folders or in our case headlines 1-31 for each day of the month, and twelve for each month.

how/do I separate work and personal

I don't think I should really keep them separate. They will have their own projects but other than that they should be treated like work.

include a resource outlining how to perform each task of GTD

will be important until you get the hang of it and internalize it.

Spacemacs on Android

Getting Spacemacs Running On Android

Entered on [2018-11-13 Tue 18:08] Updated on [2019-08-17 Sat 14:36]

My main goal was to setup Spacemacs (Emacs) org mode on Android with Termux. For anyone that has used org mode, I don't need to tell you why I would want to do this. For those that haven't heard org mode, it's hard to explain what it is, because it some many things to so many people. For starters it can be an outlining tool, a time tracker, a task tracker, a publishing tool for papers, blogs, and slide shows are but a few of the possible uses of org mode.

Setting up spacemacs on android was suprisingly easy to set up and does not require root. In fact I am writing this article within spacemacs on my samsung galaxy s9+.

  • Required
  • Optional
    • Hacker's Keyboard
      • fdroid store
    • CodeBoard
      • google play store
    • usb keyboard
      • otg cable
    • bluetooth keyboard

My main function for wanting to use org mode from my phone. I have recently started learning to use org mode, I have been a vim user now for about two years and have been fairly happy. Recently I had started a new job which required a new level of multitasking. I remembered when I was first comparing emacs to vim.

Logi Keys to Go Review

Entered on [2018-11-13 Tue 18:08] Updated on [2019-08-17 Sat 14:36]

I just started playing on this thing, and so far it seems OK. The keys honestly seem a little stiff. Maybe this will get broken in after a little usage. We will see.

Dislikes:

  • No Control Key on right side
  • You have to hit the fn key to use escape
  • Included stand does not fit my phone with case

    • instead have propped phone up on it, maybe get a kickstand

    Likes:

    • Light
    • Quiet
    • Can slip into back pocket.

Seems like it could be good for taking notes in meetings, where a laptop might not be appropriate. May still not be ok, depending.

I've had it a little while now.

I've used it with two different devices so far. I originally bought it to use with my phone, and I think this works well. I normally keep it in my car as an emergency keyboard that I can use with Termux and Spacemacs (Emacs) org mode to take notes from my phone. (Read more about that here)

Org Mode and Jira