How I work - home.org

September 25, 2023

This is the first in a series of posts on how I use Org mode and Emacs to keep me organised. In this first post I’m going to provide an overview of my home.org file - a sort-of central dashboard for my working day.

What’s in my home.org file

My home.org file is split into six sections:

I keep the contents of each section to a minimum. This is not the place for detailed project planning or notes. Therefore, at the start of home.org, I use an in-buffer setting to open most of the subtrees so I can see everything I need at a glance.

#+startup: show3levels*

Here’s my home.org file (with some text pixelated if it relates to my clients):

Screenshot of my home.org file

The Week

The first section, “This Week”, is a checklist of the main tasks I need to get done this week. They will likely be tasks in other files that have states, dates, and priorities associated with them. However, this is a manually compiled list to ensure that I’m aware of and focused on what needs to be done.

* The Week
[2023-09-25 Mon]

+ [ ] Continue with CLIENTPROJECT
+ [ ] Invoicing on Friday
+ [ ] Look at moving to using the Android Navigation component for CLIENTAPP

Habits

I have tried and failed in the past with separate habit-tracking apps and using Emacs to track habits. This section is really about a very small number of things I want to do each working day, but without any actual tracking and the associated guilt.

* Habits
[[elisp:(org-reset-checkbox-state-subtree)][Reset]]

+ [ ] Exercise
+ [ ] Watch 1 Masterclass video

At the start of each day I’ll put the cursor on the “Reset” link and press enter. This runs a little bit of Emacs Lisp to reset the checkboxes.

Clients

My main source of income is providing freelance development services. In this section I list my main clients as subheadings, and underneath each I have links to their current projects. This gives me an immediate overview of what I’m working on, for whom and quick links to those projects.

My apps

When I’m not working for someone else then I’m improving and supporting my own apps - including beorg which works with Org mode files. In this section I’ve got some quick links to additional .org files for each app.

Business

As I run my own business, in addition to the fun of software development, I have sales, finance, and marketing activities to handle. I will provide more details about how I use Org mode to keep my business on track in a future post. In this section, I maintain links to my most important files, such as month-by-month invoicing and new work sales proposals.

Learning

There isn’t always a lot of time for specific time to set aside for learning, but here I’ll list links to resources for when I do have half hour spare to spend on learning new things.

Dashboard

I use the Doom Emacs framework, and this helps Emacs be super-quick to start. When Emacs starts it displays the dashboard (M-x +doom-dashboard/open). I’ve customized this by making the first entry a link to my home.org file. I use the dashboard rather than having the home.org file open by default as this will slow opening Emacs (as it would need to load in Org mode, and I may be opening Emacs to do something else). Unlike some of you I close Emacs down at the end of everyday so I’m confident everything is saved, and the latest of everything will be available to me in beorg.

To customize the Doom dashboard I’ve added the following to my .doom.d/config.el file:

(defun my/open-home ()
  "Open my home.org file"
  (interactive)
  (find-file "~/Dropbox/org2021/home.org"))
(setq +doom-dashboard-menu-sections
  '(("Home"
     :icon (all-the-icons-octicon "home" :face 'doom-dashboard-menu-title)
     :action my/open-home)
    ("Open org-agenda"
    :icon (all-the-icons-octicon "calendar" :face 'doom-dashboard-menu-title)
    :when (fboundp 'org-agenda)
    :action org-agenda)
    ("Recently opened files"
    :icon (all-the-icons-octicon "file-text" :face 'doom-dashboard-menu-title)
    :action recentf-open-files)
    ("Jump to bookmark"
    :icon (all-the-icons-octicon "bookmark" :face 'doom-dashboard-menu-title)
    :action bookmark-jump)
    ("Open private configuration"
    :icon (all-the-icons-octicon "tools" :face 'doom-dashboard-menu-title)
    :when (file-directory-p doom-private-dir)
    :action doom/open-private-config)))

TIP: See https://github.com/domtronn/all-the-icons.el#resource-fonts for the package which supplies the icons, together with the links to the icon fonts.

The Home item uses a small Emacs Lisp function which opens up my home.org file - my/open-home.

Bookmarks

home.org is also added as a bookmark. Bookmarks are simple, but surprisingly powerful, feature of Emacs. To add a bookmark to the current file just do M-x bookmark-set and give the bookmark a name. In Doom Emacs you can bring up your bookmarks at any time, for normal mode, by doing SPC-RET.

Creating your own home.org file

I’ve found a home.org file to be a great way of simplifying how I keep on top of my working day. I haven’t had to abandon other systems I have in place, it is just an easy to reach central dashboard - a place of calm often needed if I feel overwhelmed by a too full daily agenda, bugs or due soon project.

If you want to create a home.org (or whatever you want to call it):

Download now for iPhone and iPad

Follow us on Mastodon

Privacy Policy | Press Kit