Repository navigation
Configuration
Doing's main config file is stored in ~/.doingrc, and a skeleton file is created on the first run. Just run doing on its own to create the file.
A basic configuration looks like this:
---
doing_file: /Users/username/Dropbox/doing.taskpaper
current_section: Currently
default_template: '%date: %title%note'
default_date_format: '%Y-%m-%d %H:%M'
marker_tag: flagged
marker_color: yellow
tags_color: boldcyan
default_tags: []
paginate: false
:include_notes: true
views:
color:
date_format: '%F %_I:%M%P'
section: Currently
count: 10
wrap_width: 0
template: '%boldblack%date %boldgreen| %boldwhite%title%default%note'
order: desc
templates:
default:
date_format: '%Y-%m-%d %H:%M'
template: '%date | %title%note'
wrap_width: 0
today:
date_format: '%_I:%M%P'
template: '%date: %title%odnote'
wrap_width: 0
last:
date_format: '%_I:%M%P on %a'
template: '%title (at %date)%odnote'
wrap_width: 0
recent:
date_format: '%_I:%M%P'
template: '%date > %title%odnote'
wrap_width: 50
count: 10
autotag:
whitelist:
- coding
- design
synonyms:
brainstorming:
- thinking
- idea
export_templates:
css:
haml:
markdown:
editors:
default: vim
doing_file: TaskPaper
config: Sublime Text
timer_format: human
From time to time a new configuration option is added to Doing, either by a plugin, or just a new feature in development. To incorporate keys that have been added since your .doingrc was created, run doing config update. This will leave existing keys as is, but add any missing keys with their default values (or empty if the option has no default).
Any options found in a .doingrc anywhere in the hierarchy between your current folder and your home folder will be appended to the base configuration, overriding or extending existing options. This allows you to put a .doingrc file into the base of a project and add specific configurations (such as default tags) when working in that project on the command line. These can be cascaded, with the closest .doingrc to your current directory taking precedence.
Configurations are deep merged, but arrays are not concatenated. If a configuration value is an array, the new array will overwrite the old array entirely. For example, if you have autotag whitelist tags defined in your base config, and then a local config defines a new array of whitelisted words, the array in your default config will be ignored and only the local whitelist will be used.
Possible uses:
- Define custom HTML or Markdown output on a per-project basis using the html_template option for custom templates. Customize time tracking reports based on project or client.
- Define
default_tagsfor a project so that every time youdoing nowfrom within that project directory or its subfolders, it gets tagged with that project automatically. - Use a different
doing_filefor each current project, or use top-level directories to define contextual doing files (e.g. work and personal).
Any part of the configuration can be copied into these local files and modified. You only need to include the parts you want to change or add.
The one thing you'll probably want to adjust is the file that the notes are stored in. That's the doing_file key:
doing_file: /Users/username/Dropbox/?? What was I doing.md
I keep mine in my nvUltra folder for quick access and syncing between machines. If desired, you can give it a .taskpaper extension to make it more recognizable to other applications.
You can rename the section that holds your current tasks. By default, this is Currently, but if you have some other bright idea, feel free:
current_section: Currently
Use the editors section to define what editor apps will be used for commands that require them. An editor can be a command line tool like vim or subl, or (on Mac) an application name like "VS Code" or "TaskPaper."
editors:
default: vim
doing_file: TaskPaper
config: Sublime Text
default is the fallback for all editor commands. If this isn't defined, whatever is set in $GIT_EDITOR or $EDITOR will be used (in that order).
In the case of the doing now -e command or any command that edits entries or notes, default (or $EDITOR) will be called.
The only requirements for default and editors set in the environment are that they be launchable from the command line and able to "wait." In the case of Sublime Text and TextMate, just use -w like this: subl -w. Vim automatically waits when run from the command line, but if you're using MacVim, you'll need to run mvim -f.
doing_file is the app in which your Doing file will be opened with doing open. This can be any text editor or app (vim, VS Code, TaskPaper). If this is blank, the Doing file will be opened by whatever the system default is for the doing file extension (default is .md), or you can use -a app_name or -b bundle_id to override.
config defines a separate app in which to open the config file when running doing config.
For commands that provide an HTML or Markdown output option, you can customize the templates used for markup and CSS. The HTML markup uses HAML, and the styles are pure CSS. The Markdown template uses Ruby ERB templating.
To see all available template types, run doing template -l. To export the default configurations for customization, use doing template TYPE. This will output to STDOUT where you can pipe it to a file, e.g. doing template haml > my_template.haml.
Once you have a template file prepared, edit .doingrc and look for the export_templates: section. There are sub-values for each available template type. (Run doing config update if you're not seeing a template key you think you should.) Add the template paths to the appropriate keys. A tilde may be substituted for your home directory, e.g. css: ~/styles/doing.css.
By default Doing will only page output if you use the --pager global option. You can turn on paging by default (whenever the output is longer than the terminal) with the configuration key:
paginate: true
The key timer_format affects how tag totals are displayed when view commands are given the --totals option. The default is "text", which will display the tag name followed by DD:HH:MM formatted time. If you set it to "human", a nicer ascii display will be output with totals listed in "XXh XXm" format. Other formats include "markdown", "html", and "json", but these are primarily for use in other output formats.
For template formatting, see Templates
To configure custom views with presets, see Custom Views
See Autotagging for automatic tagging configuration.