Skip to content

Todo

An interactive todo list.

Configuration

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: 1h

Screenshots

todo screenshot

Attributes

Name Value
colors.checked
The foreground color for checked rows.
Any X11 color name or long-form hex value (i.e.: #ff0000).
colors.highlight.fore
The foreground color for the currently-selected row.
Any X11 color name.
colors.highlight.back
The background color for the currently-selected row.
Any X11 color name.
colors.tags
The foreground color for tag text.
Default: khaki
Any X11 color name or long-form hex value (i.e.: #ff0000).
checkedIcon
Optional The icon used to denote a 'checked' todo item.
Any displayable unicode character.
checkedPos
Optional The position at which the checkbox is shown.
Default: first
first, last, none
dates.enabled
Optional Whether or not the following date functionality is enabled.
Default: true
true, false
dates.format
Optional The format in which to display dates.
Default: yyyy-mm-dd
yyyy-mm-dd, yy-mm-dd, dd-mm-yy, dd-mm-yyyy, dd M yy, dd M yyyy
dates.hideYearIfCurrent
Optional Hide the year, if the todo item year is the current year.
Default: true
true, false
dates.switchToInDays
Optional The number of days in the future after which the todo item date is displayed as an absolute date.
Default: 7
Any positive integer.
dates.undatedAsDays
Optional How many days into the future undated todo items should be considered 'due'.
Default: 7
Any positive integer.
filename
The name for the todo file.
Any valid filename, ideally ending in yml.
newPos
Optional The position into which new todo items are created.
Default: first
first, last
tags.enabled
Optional Whether or not to enable the tags feature.
Default: true
true, false
tags.hide
Optional A list of tags to hide by default.
A comma-separated list of tags.
tags.hiddenInTitle
Optional Whether or not to display in the widget title the number of items currently hidden by tag filtering.
Default: true
true, false
tags.pos
Optional The position in the todo item text at which to display tags.
Default: end
start, end

Keyboard

Key Action
/ Open/close the widget's help modal
# Open the tag-filtering modal dialog
[esc] Remove focus from the selected item
[esc] Close the modal item dialog without saving changes
[return] Edit the selected item
[return] Close the modal item dialog and save changes
[space] Check/uncheck the selected item
j Select the next item in the list
k Select the previous item in the list
n Create a new list item
o Opens the todo list file in whichever text editor is associated with that file type
r Refresh the data
Ctrl-d Delete the selected item
Ctrl-f Move the selected item to the top of the list
Ctrl-j Move the selected item down the list
Ctrl-k Move the selected item up the list
Ctrl-l Move the selected item to the bottom of the list

Tagging

Todo supports tagging todo list items to provide contextual grouping and filtering.

A tag is a string prefixed by the pound (#) symbol, included somewhere in the todo item text.

Examples:

buy groceries #chore

#chore buy groceries

#this also #works (two tags, #this and #works, text also)

To view only todo items associated with a specific tag, use the # key and enter the tag text in the modal dialog.

Source Code

https://github.com/wtfutil/wtf/tree/master/modules/todo