---
title: "Todo"
date: 2018-05-10T12:41:50-07:00
draft: false
---
An interactive todo list.
## Source Code
```bash
wtf/todo/
```
## Required ENV Variables
None.
## Keyboard Commands
Key: `[return]`
Action: Edit the selected item.
Action: Close the modal item dialog and save changes.
Key: `[esc]`
Action: Remove focus from the selected item.
Action: Close the modal item dialog without saving changes.
Key: `[space]`
Action: Check/uncheck the selected item.
Key: `/`
Action: Open/close the widget's help window.
Key: `j`
Action: Select the next item in the list.
Key: `k`
Action: Select the previous item in the list.
Key: `n`
Action: Create a new list item.
Key: `o`
Action: Opens the todo list file in
whichever text editor is associated with that file type.
Key: `↓`
Action: Select the next item in the list.
Key: `↑`
Action: Select the previous item in the list.
Key: `Ctrl-d`
Action: Delete the selected item.
Key: `Ctrl-J`
Action: Move the selected item down the list.
Key: `Ctrl-K`
Action: Move the selected item up the list.
## Configuration
```yaml
todo:
checkedIcon: "X"
colors:
checked: gray
highlight:
fore: "black"
back: "orange"
enabled: true
filename: "todo.yml"
position:
top: 2
left: 2
height: 2
width: 1
refreshInterval: 3600
```
### Attributes
`checkedIcon`
The icon used to denote a "checked" todo item.
Values: Any displayable unicode character.
`colors.checked`
Values: Any X11 color name.
`colors.highlight.fore`
The foreground color for the currently-selected row.
Values: Any X11 color name.
`colors.highlight.back`
The background color for the currently-selected row.
Values: Any X11 color name.
`enabled`
Whether or not this module is executed and if its data displayed onscreen.
Values: `true`, `false`.
`filename`
The name for the todo file.
Values: Any valid filename, ideally ending in `yml`.
`position`
Where in the grid this module's widget will be displayed.
`refreshInterval`
How often, in seconds, this module will update its data.
Values: A positive integer, `0..n`.