Taskwarrior obtains its configuration data from a file
called .taskrc . This file is normally located in the user's home
directory:
$HOME/.taskrc
The default location can be overridden using the rc:
attribute when running task:
$ task rc:<directory-path>/.taskrc ...
or using the TASKRC environment variable:
$ TASKRC=/tmp/.taskrc task ...
Individual options can be overridden by using the
rc.<name>: attribute when running task:
$ task rc.<name>:<value> ...
or
$ task rc.<name>=<value> ...
If Taskwarrior is run without an existing configuration
file it will ask if it should create a default, sample .taskrc file
in the user's home directory.
The .taskrc file follows a very simply syntax defining name/value
pairs:
<name> = <value>
There may be whitespace around <name>, '=' and
<value>, and it is ignored. Whitespace within the <value> is
left intact. Whitespace is not permitted in comma-separated lists. The entry
must be on a single line, no continuations. Values support UTF8 as well as
JSON encoding, such as \uNNNN.
Note that Taskwarrior is flexible about the values used to
represent Boolean items. You can use "on", "yes",
"y", "1" and "true". Anything else means
"off".
include <file>
There may be whitespace around 'include' and <file>. The
file may be an absolute or relative path, and the special character '~' is
expanded to mean $HOME. The entry must be on a single line, no
continuations.
# <comment>
A comment consists of the character '#', and extends from the '#'
to the end of the line. There is no way to comment a multi-line block. There
may be blank lines.
Almost every value has a default setting, and an empty .taskrc
file is one that makes use of every default. The contents of the .taskrc
file therefore represent overrides of the default values. To remove a
default value completely there must be an entry like this:
<name> =
This entry overrides the default value with a blank value.
You can edit your .taskrc file by hand if you wish, or you can use
the 'config' command. To permanently set a value in your .taskrc file, use
this command:
$ task config nag "You have more urgent
tasks."
To delete an entry, use this command:
$ task config nag
Taskwarrior will then use the default value. To explicitly set a
value to blank, and therefore avoid using the default value, use this
command:
$ task config nag ""
Taskwarrior will also display all your settings with this
command:
$ task show
and in addition, will also perform a check of all the values in
the file, warning you of anything it finds amiss.
The .taskrc can include other files containing configuration
settings by using the include statement:
include
<path/to/the/configuration/file/to/be/included>
By using include files you can divide your main configuration file
into several ones containing just the relevant configuration data like
colors, etc.
There are two excellent uses of includes in your .taskrc, shown
here:
include /usr/share/taskwarrior/holidays.en-US.rc
include /usr/share/taskwarrior/dark-16.theme
This includes two standard files that are distributed with
Taskwarrior, which define a set of US holidays, and set up a 16-color theme
to use, to color the reports and calendar.
Valid variable names and their default values are:
- data.location=$HOME/.task
- This is a path to the directory containing all the Taskwarrior files. By
default, it is set up to be ~/.task, for example: /home/paul/.task
Note that you can use the ~ shell meta character, which
will be properly expanded.
Note that the TASKDATA environment variable overrides this
setting.
- locking=on
- Determines whether to use file locking when accessing the pending.data and
completed.data files. Defaults to "on". Solaris users who store
the data files on an NFS mount may need to set locking to "off".
Note that there is danger in setting this value to "off" -
another program (or another instance of task) may write to the
task.pending file at the same time.
- gc=on
- Can be used to temporarily suspend garbage collection (gc), so that task
IDs don't change. Note that this should be used in the form of a command
line override (task rc.gc=off ...), and not permanently used in the
.taskrc file, as this significantly affects performance in the long term.
- hooks=on
- This master control switch enables hook script processing. The default
value is 'on', but certain extensions and environments may need to disable
hooks.
- exit.on.missing.db=no
- When set to 'yes' causes the program to exit if the database (~/.task or
rc.data.location or TASKDATA override) is missing. Default value is 'no'.
- detection=on
- Determines whether to use ioctl to establish the size of the window you
are using, for text wrapping.
- defaultwidth=80
- The width of output used when auto-detection support is not available.
Defaults to 80. If set to 0, it is interpreted as infinite width,
therefore with no word-wrapping; this is useful when redirecting report
output to a file for subsequent handling.
- defaultheight=24
- The height of output used when auto-detection support is not available.
Defaults to 24. If set to 0, it is interpreted as infinite height. This is
useful when redirecting charts to a file for subsequent handling.
- avoidlastcolumn=no
- Causes the width of the terminal minus one to be used as the full width.
This avoids placing color codes in the last column which can cause
problems for Cygwin users. Default value is 'no'.
- hyphenate=on
- Hyphenates lines when wrapping breaks occur mid-word. Default value is
'on'.
- editor=editor
- Specifies which text editor you wish to use for when the task edit
<ID> command is used. Taskwarrior will first look for this
configuration variable. If found, it is used. Otherwise it will look for
the $VISUAL or $EDITOR environment variables, before it defaults to using
"editor".
- reserved.lines=1
- This is the number of lines reserved at the bottom of the screen for the
shell prompt. This is only referenced when 'limit:page' is used.
- verbose=on|off|nothing|list...
- When set to "on" (the default), helpful explanatory comments are
added to all output from Taskwarrior. Setting this to "off"
means that you would see regular output.
The special value "nothing" can be used to eliminate
all optional output, which results in only the formatted data being
shown, with nothing else. This output is most readily parsed and used by
shell scripts.
Alternatively, you can specify a comma-separated list of
verbosity tokens that control specific occasions when output is
generated. This list may contain:
blank Inserts extra blank lines in output, for clarity
header Messages that appear before report output
footnote Messages that appear after report output
label Column labels on tabular reports
new-id Provides feedback of any new task IDs
new-uuid Provides feedback of any new task UUIDs. Deprecated, to be
merged with new-id.
affected Reports 'N tasks affected' and similar
edit Used the verbose template for the 'edit' command
special Feedback when applying special tags
project Feedback about project status changes
sync Feedback about sync
filter Shows the filter used in the command
unwait Notification when a task leaves the 'waiting' state
recur Notification when a new recurring task instance is created
"affected", "new-id", "new-uuid"
"project" and "unwait" imply
"footnote".
Note that the "on" setting is equivalent to all the
tokens being specified, and the "nothing" setting is
equivalent to none of the tokens being specified.
Here are the shortcut equivalents:
verbose=on
verbose=blank,header,footnote,label,new-id,affected,edit,special,project,sync,filter,unwait
verbose=off
verbose=blank,label,new-id,edit
verbose=nothing
verbose=
Those additional comments are sent to the standard error for
header, footnote and project. The others are sent to standard
output.
- confirmation=yes
- May be "yes" or "no", and determines whether
Taskwarrior will ask for confirmation before deleting a task or performing
the undo command. The default value is "yes". Consider leaving
this setting as "yes", for safety.
- allow.empty.filter=yes
- An empty filter combined with a write command is potentially a way to
modify all tasks by mistake, and when this is detected, confirmation is
required. Setting this to 'no' means that it is an error to use a write
command with no filter.
- indent.annotation=2
- Controls the number of spaces to indent annotations when shown beneath the
description field. The default value is "2".
- indent.report=0
- Controls the indentation of the entire report output. Default is
"0".
- row.padding=0
- Controls left and right padding around each row of the report output.
Default is "0".
- column.padding=0
- Controls padding between columns of the report output. Default is
"1".
- bulk=3
- Is a number, defaulting to 3. When this number or greater of tasks are
modified in a single command, confirmation will be required, regardless of
the value of confirmation variable. The special value bulk=0 is
treated as an infinity.
This is useful for preventing large-scale unintended
changes.
- nag=You have more
urgent tasks.
- This may be a string of text, or blank. It is used as a prompt when a task
is started of completed, when there are other tasks with a higher urgency.
Default value is: 'You have more urgent tasks'. It is a gentle reminder
that you are contradicting your own urgency settings.
- list.all.projects=no
- May be yes or no, and determines whether the 'projects' command lists all
the project names you have used, or just the ones used in active tasks.
The default value is "no".
- summary.all.projects=no
- If set to yes, shows all projects in the summary report, even if there are
no pending tasks. The default value is "no".
- complete.all.tags=yes
- May be yes or no, and determines whether the tab completion scripts
consider all the tag names you have used, or just the ones used in active
tasks. The default value is "no".
- list.all.tags=yes
- May be yes or no, and determines whether the 'tags' command lists all the
tag names you have used, or just the ones used in active tasks. The
default value is "no".
- print.empty.columns=no
- May be yes or no, and determines whether columns with no data for any task
are printed. Defaults to no.
- search.case.sensitive=yes
- May be yes or no, and determines whether keyword lookup and substitutions
on the description and annotations are done in a case sensitive way.
Defaults to yes on most platforms. Defaults to no on Cygwin due to older
regex library problems with case-insensitivity.
- regex=on
- Controls whether regular expression support is enabled. The default value
is on.
- xterm.title=no
- Sets the xterm window title when reports are run. Defaults to off.
- expressions=infix|postfix
- Sets a preference for infix expressions (1 + 2) or postfix expressions (1
2 +). Defaults to infix.
- json.array=on
- Determines whether the export command encloses the JSON output in '[...]'
and adds ',' after each exported task object to create a properly-formed
JSON array. With json.array=off, export writes raw JSON objects to STDOUT,
one per line. Defaults to on.
- json.depends.array=on
- Determines whether the export command encodes dependencies as an array of
string UUIDs, or one comma-separated string. Defaults to on.
- _forcecolor=no
- Taskwarrior shuts off color automatically when the output is not sent
directly to a TTY. For example, this command:
$ task list > file
will not use any color. To override this, use:
$ task rc._forcecolor=yes list > file
- active.indicator=*
- The character or string to show in the start.active column. Defaults to *.
- tag.indicator=+
- The character or string to show in the tag.indicator column. Defaults to
+.
- dependency.indicator=D
- The character or string to show in the depends.indicator column. Defaults
to +.
- uda.<name>.indicator=U
- The character or string to show in the <uda>.indicator column.
Defaults to U.
- recurrence=yes
- Controls whether recurrence is enabled, and whether recurring tasks
continue to generate new task instances. Defaults to 'yes'.
- recurrence.confirmation=prompt
- Controls whether changes to recurring tasks propagates to other child
tasks with or without confirmation. A value of 'yes' means propagate
changes without confirmation. A value of 'no' means do not propagate
changes and don't ask for confirmation. A value of 'prompt' prompts you
every time. Defaults to 'prompt'.
- recurrence.indicator=R
- The character or string to show in the recurrence_indicator column.
Defaults to R.
- recurrence.limit=1
- The number of future recurring tasks to show. Defaults to 1. For example,
if a weekly recurring task is added with a due date of tomorrow, and
recurrence.limit is set to 2, then a report will list 2 pending recurring
tasks, one for tomorrow, and one for a week from tomorrow.
- undo.style=side
- When the 'undo' command is run, Taskwarrior presents a before and after
comparison of the data. This can be in either the 'side' style, which
compares values side-by-side in a table, or 'diff' style, which uses a
format similar to the 'diff' command.
- abbreviation.minimum=2
- Minimum length of any abbreviated command/value. This means that
"ve", "ver", "vers", "versi",
"versio" will all equate to "version", but
"v" will not. Default is 2.
- debug=off
- Taskwarrior has a debug mode that causes diagnostic output to be
displayed. Typically this is not something anyone would want, but when
reporting a bug, debug output can be useful. It can also help explain how
the command line is being parsed, but the information is displayed in a
developer-friendly, not a user-friendly way.
Turning debug on automatically sets debug.hooks=1,
debug.parser=1 and debug.tls=2 if they do not already have assigned
values.
- debug.hooks=0
- Controls the hook system diagnostic level. Level 0 means no diagnostics.
Level 1 shows hook calls. Level 2 also shows exit status and I/O.
- debug.parser=0
- Controls the parser diagnostic level. Level 0 shows no diagnostics. Level
1 shows the final parse tree. Level 2 shows the parse tree from all phases
of the parse. Level 3 shows expression evaluation details.
- debug.tls=0
- Controls the GnuTLS diagnostic level. For 'sync' debugging. Level 0 means
no diagnostics. Level 9 is the highest. Level 2 is a good setting for
debugging.
- obfuscate=1
- When set to '1', will replace all report text with 'xxx'. This is useful
for sharing report output in bug reports. Default value is '0'.
- alias.rm=delete
- Taskwarrior supports command aliases. This alias provides an alternate
name (rm) for the delete command. You can use aliases to provide alternate
names for any of the commands. Several commands you may use are actually
aliases - the 'history' report, for example, or 'export'.
- dateformat=Y-M-D
- dateformat.report=
- dateformat.holiday=YMD
- dateformat.edit=Y-M-D
H:N:S
- dateformat.info=Y-M-D
H:N:S
- dateformat.annotation=
- report.X.dateformat=Y-M-D
- This is a string of characters that defines how Taskwarrior formats date
values. The precedence order for the configuration variable is
report.X.dateformat then dateformat.report then dateformat for formatting
the due dates in reports. If both report.X.dateformat and
dateformat.report are not set then dateformat will be applied to the date.
Entered dates as well as all other displayed dates in reports are
formatted according to dateformat.
The default value is the ISO-8601 standard: Y-M-D. The string
can contain the characters:
m minimal-digit month, for example 1 or 12
d minimal-digit day, for example 1 or 30
y two-digit year, for example 09 or 12
D two-digit day, for example 01 or 30
M two-digit month, for example 01 or 12
Y four-digit year, for example 2009 or 2015
a short name of weekday, for example Mon or Wed
A long name of weekday, for example Monday or Wednesday
b short name of month, for example Jan or Aug
B long name of month, for example January or August
v minimal-digit week, for example 3 or 37
V two-digit week, for example 03 or 37
h minimal-digit hour, for example 3 or 21
n minimal-digit minutes, for example 5 or 42
s minimal-digit seconds, for example 7 or 47
H two-digit hour, for example 03 or 21
N two-digit minutes, for example 05 or 42
S two-digit seconds, for example 07 or 47
J three-digit Julian day, for example 023 or 365
j Julian day, for example 23 or 365
The characters 'v', 'V', 'a' and 'A' can only be used for
formatting printed dates (not to parse them).
The string may also contain other characters to act as
spacers, or formatting. Examples for other values of dateformat:
d/m/Y would use for input and output 24/7/2009
yMD would use for input and output 090724
M-D-Y would use for input and output 07-24-2009
Examples for other values of dateformat.report:
a D b Y (V) would emit "Fri 24 Jul 2009 (30)"
A, B D, Y would emit "Friday, July 24, 2009"
wV a Y-M-D would emit "w30 Fri 2009-07-24"
yMD.HN would emit "110124.2342"
m/d/Y H:N would emit "1/24/2011 10:42"
a D b Y H:N:S would emit "Mon 24 Jan 2011 11:19:42"
Undefined fields are put to their minimal valid values (1
for month and day and 0 for hour, minutes and seconds) when there is at least
one more global date field that is set. Otherwise, they are set to the
corresponding values of "now". For example:
8/1/2013 with m/d/Y implies August 1, 2013 at midnight (inferred)
8/1 20:40 with m/d H:N implies August 1, 2013 (inferred) at 20:40
- date.iso=yes
- Enables ISO-8601 date support. The default value is "yes".
- weekstart=Sunday
- Determines the day a week starts. Valid values are Sunday or Monday only.
The default value is "Sunday".
- displayweeknumber=yes
- Determines if week numbers are displayed when using the "task
calendar" command. The week number is dependent on the day a week
starts. The default value is "yes".
- due=7
- This is the number of days into the future that define when a task is
considered due, and is colored accordingly. The default value is 7.
- calendar.details=sparse
- If set to full running "task calendar" will display the details
of tasks with due dates that fall into the calendar period. The
corresponding days will be color-coded in the calendar. If set to sparse
only the corresponding days will be color coded and no details will be
displayed. The displaying of due dates with details is turned off by
setting the variable to none. The default value is "sparse".
- calendar.details.report=list
- The report to run when displaying the details of tasks with due dates when
running the "task calendar" command. The default value is
"list".
- calendar.offset=off
- If "on" the first month in the calendar report is effectively
changed by the offset value specified in calendar.offset.value. It
defaults to "off".
- calendar.offset.value=-1
- The offset value to apply to the first month in the calendar report. The
default value is "-1".
- calendar.holidays=full
- If set to full running "task calendar" will display holidays in
the calendar by color-coding the corresponding days. A detailed list with
the dates and names of the holidays is also shown. If set to sparse only
the days are color-coded and no details on the holidays will be displayed.
The displaying of holidays is turned off by setting the variable to none.
The default value is "none".
- calendar.legend=yes
- Determines whether the calendar legend is displayed. The default value is
"yes".
- journal.time=no
- May be yes or no, and determines whether the 'start' and 'stop' commands
should record an annotation when being executed. The default value is
"no". The text of the corresponding annotations is controlled
by:
- journal.time.start.annotation=Started
task
- The text of the annotation that is recorded when executing the start
command and having set journal.time.
- journal.time.stop.annotation=Stopped
task
- The text of the annotation that is recorded when executing the stop
command and having set journal.time.
- journal.info=on
- When enabled, this setting causes a change log of each task to be
displayed by the 'info' command. Default value is "on".
Holidays are entered either directly in the .taskrc file or via an
include file that is specified in .taskrc. For each holiday the name and the
date is required to be given:
holiday.towel.name=Day of the towel
holiday.towel.date=20100525
holiday.sysadmin.name=System Administrator Appreciation Day
holiday.sysadmin.date=20100730
Dates are to be entered according to the setting in the
dateformat.holiday variable.
The following holidays are computed automatically: Good
Friday (goodfriday), Easter (easter), Easter Monday (eastermonday), Ascension
(ascension), Pentecost (pentecost). The date for these holidays is the given
keyword:
holiday.eastersunday.name=Easter
holiday.eastersunday.date=easter
Note that the Taskwarrior distribution contains example holiday
files that can be included like this:
include /usr/share/taskwarrior/holidays.en-US.rc
- monthsperline=3
- Determines how many months the "task calendar" command renders
across the screen. Defaults to however many will fit. If more months than
will fit are specified, Taskwarrior will only show as many that will fit.
- color=on
- May be "on" or "off". Determines whether Taskwarrior
uses color. When "off", will use dashes (-----) to underline
column headings.
- fontunderline=on
- Determines if font underlines or ASCII dashes should be used to underline
headers, even when color is enabled.
Taskwarrior has a number of coloration rules. They correspond to a
particular attribute of a task, such as it being due, or being active, and
specifies the automatic coloring of that task. A list of valid colors,
depending on your terminal, can be obtained by running the command:
task color
Note that no default values are listed here - the
defaults now correspond to the dark-256.theme (Linux) and dark-16.theme
(other) theme values. The coloration rules are as follows:
color.due.today Task is due today
color.active Task is started, therefore active.
color.scheduled Task is scheduled, therefore ready for work.
color.until Task has an expiration date.
color.blocking Task is blocking another in a dependency.
color.blocked Task is blocked by a dependency.
color.overdue Task is overdue (due some time prior to now).
color.due Task is coming due.
color.project.none Task does not have an assigned project.
color.tag.none Task has no tags.
color.tagged Task has at least one tag.
color.recurring Task is recurring.
color.completed Task is completed.
color.deleted Task is deleted.
To disable a coloration rule for which there is a
default, set the value to nothing, for example:
color.tagged=
By default, colors produced by rules blend. This has the
advantage of conveying additional information, by producing combinations that
are not used by any particular rule directly.
However, color blending can produce highlighting combinations
which are not desired. In such cases, use the following option to disable
this behaviour:
- rule.color.merge=yes
- Can be "yes" or "no". When "no", disables
merging of colors produced by different color rules. Use if your color
scheme produces unpleasing foreground and background combinations.
See the task-color(5) man pages for color details.
Certain attributes like tags, projects and keywords can have their
own coloration rules.
- color.tag.X=yellow
- Colors any task that has the tag X.
- color.project.X=on
green
- Colors any task assigned to project X.
- color.keyword.X=on
blue
- Colors any task where the description or any annotation contains X.
- color.uda.X=on
green
- Colors any task that has the user defined attribute X.
- color.uda.X.VALUE=on
green
- Colors any task that has the user defined attribute X set to VALUE.
- color.uda.X.none=on
green
- Colors any task that does not have the user defined attribute X.
- color.error=white
on red
- Colors any of the error messages.
- color.warning=bold
red
- Colors any of the warning messages.
- Colors any of the messages printed prior to the report output.
- Colors any of the messages printed last.
- color.summary.bar=on
green
- Colors the summary progress bar. Should consist of a background
color.
- color.summary.background=on
black
- Colors the summary progress bar. Should consist of a background
color.
- color.calendar.today=black
on cyan
- Color of today in calendar.
- color.calendar.due=black
on green
- Color of days with due tasks in calendar.
- color.calendar.due.today=black
on magenta
- Color of today with due tasks in calendar.
- color.calendar.overdue=black
on red
- Color of days with overdue tasks in calendar.
- color.calendar.weekend=bright
white on black
- Color of weekend days in calendar.
- color.calendar.holiday=black
on bright yellow
- Color of holidays in calendar.
- color.calendar.weeknumber=black
on white
- Color of weeknumbers in calendar.
- color.label=
- Colors the report labels. Defaults to not use color.
- color.label.sort=
- Colors the report labels for sort columns. Defaults to color.label.
- color.alternate=on
rgb253
- Color of alternate tasks. This is to apply a specific color to every other
task in a report, which can make it easier to visually separate tasks.
This is especially useful when tasks are displayed over multiple lines due
to long descriptions or annotations.
- color.history.add=on
red
color.history.done=on green
color.history.delete=on yellow
Colors the bars on the ghistory report graphs. Defaults
to red, green and yellow bars.
- color.burndown.pending=on
red
color.burndown.started=on yellow
color.burndown.done=on green
Colors the bars on the burndown reports graphs. Defaults
to red, green and yellow bars.
- color.undo.before=red
color.undo.after=green
Colors used by the undo command, to indicate the values
both before and after a change that is to be reverted.
- color.sync.added=green
color.sync.changed=yellow
color.sync.rejected=red
Colors the output of the sync command.
- rule.precedence.color=due.today,active,blocking,blocked,overdue,
-
due,scheduled,keyword.,project.,tag.,uda.,
recurring,tagged,completed,deleted
This setting specifies the precedence of the color rules,
from highest to lowest. Note that the prefix 'color.' is omitted (for
brevity), and that any wildcard value (color.tag.XXX) is shortened to 'tag.',
which places all specific tag rules at the same precedence, again for
brevity.
- color.debug=green
Colors all debug output, if enabled.
The urgency calculation uses a polynomial with several terms, each
of which has a configurable coefficient. Those coefficients are:
- urgency.blocking.coefficient=8.0
Urgency coefficient for blocking tasks
urgency.blocked.coefficient=-5.0
Urgency coefficient for blocked tasks
urgency.due.coefficient=12.0
Urgency coefficient for due dates
urgency.waiting.coefficient=-3.0
Urgency coefficient for waiting status
urgency.active.coefficient=4.0
Urgency coefficient for active tasks
urgency.scheduled.coefficient=5.0
Urgency coefficient for scheduled tasks
urgency.project.coefficient=1.0
Urgency coefficient for projects
urgency.tags.coefficient=1.0
Urgency coefficient for tags
urgency.annotations.coefficient=1.0
Urgency coefficient for annotations
urgency.age.coefficient=2.0
Urgency coefficient for the age of tasks
urgency.age.max=365
Maximum age in days. After this number of days has
elapsed, the urgency of a task won't increase any more because of aging.
urgency.user.tag.<tag>.coefficient=...
Specific tag coefficient.
urgency.user.tag.next.coefficient=15.0
Urgency coefficient for tag 'next'.
urgency.user.project.<project>.coefficient=...
Specific project coefficient.
urgency.user.keyword.<keyword>.coefficient=...
Specific description keyword coefficient.
urgency.uda.<name>.coefficient=...
Presence/absence of UDA data.
urgency.uda.<name>.<value>.coefficient=...
Specific value of UDA data.
The coefficients reflect the relative importance of the various
terms in the urgency calculation. These are default values, and may be
modified to suit your preferences, but it is important that you carefully
consider any modifications.
urgency.inherit=off
Not actually a coefficient. When enabled, blocking tasks
inherit the highest urgency value found in the tasks they block. This is done
recursively. It is recommended to set urgency.blocking.coefficient and
urgency.blocked.coefficient to 0.0 in order for this setting to be the most
useful.
- default.project=foo
- Provides a default project name for the task add command, if you
don't specify one. The default is blank.
- default.due=...
- Provides a default due date for the task add command, if you don't
specify one. You can use a date, or a duration value which is assumed to
be relative to 'now'. The default is blank.
- uda.<name>.default=...
- Provides default values for UDA fields when using the task add
command, if you don't specify values. The default is blank.
- default.command=next
- Provides a default command that is run every time Taskwarrior is invoked
with no arguments. For example, if set to:
default.command=project:foo list
then Taskwarrior will run the "project:foo
list" command if no command is specified. This means that by merely
typing
$ task
[task project:foo list]
ID Project Pri Description
1 foo H Design foo
2 foo Build foo
The reports can be customized by using the following configuration
variables. The output columns, their labels and the sort order can be set
using the corresponding variables for each report. Each report name is used
as a "command" name. For example
- task overdue
-
- report.X.description
- The description for report X when running the "task help"
command.
- report.X.columns
- This is a comma-separated list of columns and formatting specifiers. See
the command 'task columns' for a full list of options and examples.
- report.X.labels
- The labels for each column that will be used when generating report X. The
labels are a comma separated list.
- report.X.sort
- The sort order of the tasks in the generated report X. The sort order is
specified by using the column ids post-fixed by a "+" for
ascending sort order or a "-" for descending sort order. The
sort IDs are separated by commas. For example:
report.list.sort=due+,priority-,start.active-,project+
Additionally, after the "+" or "-", there
can be a solidus "/" which indicates that there are breaks
after the column values change. For example:
report.minimal.sort=project+/,description+
This sort order now specifies that there is a listing break
between each project. A listing break is simply a blank line, which
provides a visual grouping.
A special sort value of "none" indicates that no
sorting is required, and tasks will be presented in the order (if any)
in which they are selected.
- report.X.filter
- This adds a filter to the report X so that only tasks matching the filter
criteria are displayed in the generated report.
- report.X.dateformat
- This adds a dateformat to the report X that will be used by the "due
date" column. If it is not set then dateformat.report and dateformat
will be used in this order. See the DATES section for details on
the sequence placeholders.
- report.X.annotations
- This adds the possibility to control the output of annotations for a task
in a report. Deprecated. Use the description column with a format
(e.g., description.count) instead.
- Taskwarrior
comes with a number of predefined reports, which are:
-
- next
- Lists the most important tasks.
- long
- Lists all pending tasks and all data, matching the specified criteria.
- list
- Lists all tasks matching the specified criteria.
- ls
- Short listing of all tasks matching the specified criteria.
- minimal
- Minimal listing of all tasks matching the specified criteria.
- newest
- Shows the newest tasks.
- oldest
- Shows the oldest tasks.
- overdue
- Lists overdue tasks matching the specified criteria.
- active
- Lists active tasks matching the specified criteria.
- completed
- Lists completed tasks matching the specified criteria.
- recurring
- Lists recurring tasks matching the specified criteria.
- waiting
- Lists all waiting tasks matching the specified criteria.
- all
- Lists all tasks matching the specified criteria.
- blocked
- Lists all tasks that have dependencies.
User defined attributes (UDAs) are an extension mechanism that
allows you to define new attributes for Taskwarrior to store and display.
One such example is an 'estimate' attribute that could be used to store time
estimates associated with a task. This 'estimate' attribute is not built in
to Taskwarrior, but with a few simple configuration settings you can
instruct Taskwarrior to store this item, and provide access to it for custom
reports and filters.
This allows you to augment Taskwarrior to accommodate your
workflow, or bend the rules and use Taskwarrior to store and synch data that
is not necessarily task-related.
One important restriction is that because this is an open system
that allows the definition of any new attribute, Taskwarrior cannot
understand the meaning of that attribute. So while Taskwarrior will
faithfully store, modify, report, sort and filter your UDA, it does not
understand anything about it. For example if you define a UDA named
'estimate', Taskwarrior will not know that this value is weeks, hours,
minutes, money, or some other resource count.
- uda.<name>.type=string|numeric|date|duration
Defines a UDA called '<name>', of the specified
type.
- uda.<name>.label=<column
heading>
Provides a default report label for the UDA called
'<name>'.
- uda.<name>.values=A,B,C
For type 'string' UDAs only, this provides a
comma-separated list of acceptable values. In this example, the '<name>'
UDA may only contain values 'A', 'B', or 'C', but may also contain no value.
Note that the order of the value is important, and denotes the
sort order from highest ('A') to lowest ('C').
Note that a blank value is permitted.
- uda.<name>.default=...
Provides a default value for the UDA called
'<name>'.
- Example 'estimate'
UDA
- This example shows an 'estimate' UDA that stores specific values for the
size of a task. Note the blank value after 'trivial'.
uda.estimate.type=string
uda.estimate.label=Size Estimate
uda.estimate.values=huge,large,medium,small,trivial,
Note that the value are sorted
huge > large > medium > small > trivial > ''
Context setting is a mechanism which allows the user to set a
permanent filter, thus avoiding the need to specify one filter repeatedly.
More details on usage can be found in the task(1) man page.
The current context is stored in the .taskrc file, along with
definitions for all user provided contexts.
- context=<name>
Stores the value of the currently active context.
- context.<name>=<filter>
Stores the definition of the context with the name
<name>.
These configuration settings are used to connect and sync tasks
with the task server.
- taskd.server=<host>:<port>
Specifies the hostname and port of the Taskserver.
Hostname may be an IPv4 or IPv6 address, or domain. Port is an integer.
- taskd.credentials=<organization>/<user>/<key>
User identification for the Taskserver, which includes a
private key.
- taskd.certificate=<path>
Specifies the path to the client certificate used for
identification with the Taskserver.
- taskd.key=<path>
Specifies the path to the client key used for encrypted
communication with the Taskserver.
- taskd.ca=<path>
Specifies the path to the CA certificate in the event
that your Taskserver is using a self-signed certificate. Optional.
- taskd.trust=strict|ignore
hostname|allow all
This settings allows you to override the trust level when
server certificates are validated. With "allow all", the server
certificate is trusted automatically. With "ignore hostname", the
server certificate is verified but the hostname is ignored. With
"strict", the server certificate is verified. Default is
"strict", which requires full validation.
- taskd.ciphers=NORMAL
- Override of the cipher selection. The set of ciphers used by TLS may be
controlled by both server and client. There must be some overlap between
client and server supported ciphers, or communication cannot occur.
Default is "NORMAL". See GnuTLS documentation for full
details.