Here is my theme for Taskwarrior TUI. Add the following to your taskrc file.
include ~/.cache/taskwarrior/reset.theme
include ~/.cache/taskwarrior/dark-256-custom.theme
The reset nullifies all color rules so your custom styles start from a blank slate, avoiding unexpected color bleed from previous configurations.
Switching themes becomes a single-file swap—just change the custom file path while the reset include stays put.
# ~/.cache/taskwarrior/reset.theme
color.active=
color.alternate=
color.blocked=
color.blocking=
color.burndown.done=
color.burndown.pending=
color.burndown.started=
color.calendar.due=
color.calendar.due.today=
color.calendar.holiday=
color.calendar.overdue=
color.calendar.scheduled=
color.calendar.today=
color.calendar.weekend=
color.calendar.weeknumber=
color.completed=
color.debug=
color.deleted=
color.due=
color.due.today=
color.error=
color.footnote=
color.header=
color.history.add=
color.history.delete=
color.history.done=
color.label=
color.label.sort=
color.overdue=
color.project.none=
color.recurring=
color.red=
color.scheduled=
color.summary.background=
color.summary.bar=
color.sync.added=
color.sync.changed=
color.sync.rejected=
color.tag.epic=
color.tag.next=
color.tag.none=
color.tagged=
color.uda.priority.H=
color.uda.priority.L=
color.uda.priority.M=
color.undo.after=
color.undo.before=
color.until=
color.warning=
# ~/.cache/taskwarrior/dark-256-custom.theme
rule.precedence.color=deleted,completed,active,keyword.,tag.,project.,recurring,overdue,scheduled,due.today,due,blocked,blocking,tagged,uda.
# General decoration
color.active=rgb542
color.alternate=on gray3
color.debug=color4
color.due.today=underline rgb511
color.due=rgb511
color.error=underline gray23 on rgb511
color.header=inverse
color.overdue=rgb555 on rgb300
color.tag.next=rgb440
color.warning=bold magenta
color.red=rgb511
# Report: burndown
color.burndown.done=on rgb010
color.burndown.pending=on color9
color.burndown.started=on color11
# Report: history
color.history.add=color0 on rgb511
color.history.delete=color0 on rgb550
color.history.done=color0 on rgb050
# Command: calendar
color.calendar.due=rgb511
color.calendar.due.today=underline rgb511
color.calendar.overdue=rgb555 on rgb300
color.calendar.today=on rgb013
color.calendar.weekend=on color235
# Command: sync
color.sync.rejected=underline gray23 on rgb103
# Custom UDA and tags
color.tag.epic=magenta
Taskwarrior merges all color.* assignments sequentially—each new value overwrites the previous one for that key. Including reset.theme first assigns empty strings to every default color key, so none of your previous configuration leaks through. Your custom theme then fills in only the values you want, with no risk of stale settings from an old theme.