Back to Oh My Posh

Taskwarrior

website/docs/segments/cli/taskwarrior.mdx

29.12.02.6 KB
Original Source

What

Display Taskwarrior task data for configurable commands. Each named command runs task with the specified arguments and exposes the raw output in the template.

Sample Configuration

import Config from "@site/src/components/Config.js";

<Config data={{ type: "taskwarrior", style: "powerline", powerline_symbol: "\uE0B0", foreground: "#193549", background: "#ffeb3b", template: " \uf4a0 {{ range $k, $v := .Commands }}{{ $k }}:{{ $v }} {{ end }}", options: { commands: { due: "+PENDING due.before:tomorrow count", scheduled: "+PENDING scheduled.before:tomorrow count", waiting: "+WAITING count", context: "_get rc.context", }, }, }} />

Options

NameTypeDefaultDescription
commandstringtaskthe Taskwarrior executable to use
commandsmap[string]stringsee belowmap of name to Taskwarrior arguments; the raw output is exposed in .Commands

Default commands value

json
{
  "due": "+PENDING due.before:tomorrow count",
  "scheduled": "+PENDING scheduled.before:tomorrow count",
  "waiting": "+WAITING count",
  "context": "_get rc.context"
}

Each entry runs task <arguments> and stores the trimmed stdout as a string. Remove entries you do not need to keep prompt rendering fast.

Template (info)

:::note default template

template
 {{ "\uf4a0" }} {{ range $k, $v := .Commands }}{{ $k }}:{{ $v }} {{ end }}

:::

Properties

NameTypeDescription
.Commandsmap[string]stringraw command output keyed by name with the first letter uppercased (e.g. "Due")

Examples

Access a specific command result directly:

template
 {{ "\uf4a0" }} Due: {{ .Commands.Due }}

Display multiple results:

template
 {{ "\uf4a0" }} Due: {{ .Commands.Due }} | Waiting: {{ .Commands.Waiting }}

Include the active context alongside task counts:

template
 {{ "\uf4a0" }} {{ .Commands.Context }} - Due: {{ .Commands.Due }} Scheduled: {{ .Commands.Scheduled }}