Taskwarrior supports colorization rules. These are configuration values that specify a color, and the conditions under which that color is used. By example, let us add a few tasks:
$ task add project:Home priority:H pay the bills $ task add project:Home clean the rug $ task add project:Garden clean out the garage
We can add a color rule that uses a blue background for all tasks in the Home project:
$ task config color.project.Home 'on blue'
We use quotes around
'on blue' because there are two words, but they represent one value in the .taskrc file. Now suppose we wish to use a bold yellow text color for all cleaning work:
task config color.keyword.clean 'bold yellow'
Now what happens to task 2, which belongs to project Home (blue background), and is also a cleaning task (bold yellow foreground)? The colors are combined, and the task is shown as "bold yellow on blue".
Color rules can be applied by project and description keyword, as shown, and also by priority (or lack of priority), by active status, by being due or overdue, by being tagged, or having a specific tag (perhaps the most useful rule) or by being a recurring task.
It is possible to create a very colorful mix of rules. With 256-color support, those colors can be made subtle, and complementary, but without care, this can be a visual mess. Beware!
In such cases, consider using the 'rule.color.merge=no' option to disable the color blending.
The precedence for the color rules is determined by the configuration variable 'rule.precedence.color', which by default contains:
These are just the color rules with the
color. prefix removed. The rule
color.due.today is the highest precedence, and
color.deleted is the lowest.
The keyword rule shown here as
keyword. corresponds to a wildcard pattern, meaning
color.keyword.*, or in other words all the keyword rules. Similarly for the
There is also
color.pri.none to specifically represent missing data.