# Taskwarrior TUI
[](https://github.com/kdheepak/taskwarrior-tui/actions?query=workflow%3ACI)
[](./LICENSE)
[](https://github.com/kdheepak/taskwarrior-tui/releases/latest)
[](https://github.com/kdheepak/taskwarrior-tui/releases/latest)
A Terminal User Interface for [Taskwarrior](https://taskwarrior.org/).

## Installation
You will need to install `taskwarrior` first. See for more information.
**Manual**
1. Download the tar.gz file for your OS from [the latest release](https://github.com/kdheepak/taskwarrior-tui/releases/latest).
2. Unzip the tar.gz file
3. Run with `./taskwarrior-tui`.
**Using [`zdharma/zinit`](https://github.com/zdharma/zinit)**
Add the following to your `~/.zshrc`:
```zsh
zinit ice wait:2 lucid extract"" from"gh-r" as"command" mv"taskwarrior-tui* -> tt"
zinit load kdheepak/taskwarrior-tui
```
**Using `cargo`**
```
git clone https://github.com/kdheepak/taskwarrior-tui.git
cd taskwarrior-tui
cargo build --release
```
**Using `AUR`**
Use your favorite installation method to download the [AUR package](https://aur.archlinux.org/packages/taskwarrior-tui-git/) maintained by [**@loki7990**](https://github.com/loki7990).
## Usage
See it in action here:

### Easy to use interface:
Click to expand!
- `/`: `task {string}` - Filter task report
- `a`: `task add {string}` - Add new task
- `d`: `task {selected} done` - Mark task as done
- `e`: `task {selected} edit` - Open selected task in editor
- `j`: `{selected+=1}` - Move down in task report
- `k`: `{selected-=1}` - Move up in task report
- `l`: `task log {string}` - Log new task
- `m`: `task {selected} modify {string}` - Modify selected task
- `q`: `exit` - Quit
- `s`: `task {selected} start/stop` - Toggle start and stop
- `u`: `task undo` - Undo
- `x`: `task delete {selected}` - Delete
- `A`: `task {selected} annotate {string}` - Annotate current task
- `?`: `help` - Help menu
- `!`: `{string}` - Custom shell command
- `]`: `Next view` - Go to next view
- `[`: `Previous view` - Go to previous view

### `readline`-like functionality:
Click to expand!
- `` : Go to beginning of the line
- `` : Go to end of the line
- `` : Delete from beginning of the line
- `` : Delete to end of the line
- `` : Delete previous word

### Calendar view
Click to expand!
`taskwarrior-tui` supports a Calendar view, which you can get to by hitting the `]` key:

This highlights the days for your due tasks in a calendar view.
You can configure the number of months in a row by changing the `uda.taskwarrior-tui.calendar.months_per_row` attribute in your `taskrc` file.
See the next section for more information.
You can switch back to the task view by hitting the `[` key.
### Configure `taskwarrior-tui` using `~/.taskrc`:
Click to expand!
`taskwarrior-tui` reads values from your `taskwarrior`'s `taskrc` file (default: `~/.taskrc`).

For example, `color.active` is used to style the active task.
If you would like to try it, open your `taskrc` file and change `color.active=white on blue`.
So `color.active` will take precedence over `color.overdue`. You can see what `color.active` is by running `task show color.active` in your favorite shell prompt.
The following color attributes are supported:
```plaintext
color.deleted
color.completed
color.active
color.overdue
color.scheduled
color.due.today
color.due
color.blocked
color.blocking
color.recurring
color.tagged
```
Other `taskwarrior-tui` configuration options are possible using the user defined attribute feature of `taskwarrior`.
All `taskwarrior-tui` specific configuration options will begin with `uda.taskwarrior-tui.`.
The following is a full list of all the options available and their default values implemented by `taskwarrior-tui` if not defined in your `taskrc` file.
```plaintext
uda.taskwarrior-tui.selection.indicator=•
uda.taskwarrior-tui.selection.bold=yes
uda.taskwarrior-tui.selection.italic=no
uda.taskwarrior-tui.selection.dim=no
uda.taskwarrior-tui.selection.blink=no
uda.taskwarrior-tui.calendar.months_per_row=4
```