Skip to main content

A powerful, keyboard-driven terminal application for managing todo.txt files.

Project description

TodoTxtTUI

A powerful, keyboard-driven terminal application for managing todo.txt files.

Screenshot

Supports Linux and macOS. In theory, it should work on Windows, but I currently have no plans on testing this.

Features

  • Priorities: Tasks can have priorities and are color-coded accordingly.
  • Sorting: Tasks sorted by due date, priority and alphabetical (in that order).
  • Due Dates: Tasks can have due dates and are grouped by them.
    • Natural Language Processing (NLP): For example, due:tomorrow.
  • Threshold Dates: Deferred tasks.
  • Recurring tasks: Tasks can have a recurrence pattern, automatically creating new tasks upon completion. For example rec:1d or rec:+1y.
  • Projects/Contexts: With autosuggestions and autocompletion.
  • Search: Quickly find the tasks you're looking for.
  • Archiving: Completed tasks can be moved to done.txt.
  • Completion/Creation dates: Enable or disable them. See Configuration.
  • Markdown links: Yes.
  • Sync: Changes made in todo.txt outside the application will be reflected in the app.
  • Keyboard driven: Navigate and manipulate everything from your keyboard with vim-inspired keys.
  • Custom themes: See Configuration.
  • Hidden tasks: See keybindings and Configuration
  • Much more...

Keybindings

  • j/down: Move cursor down
  • k/up: Move cursor up
  • gg: Go top of list
  • G: Go to bottom of list
  • n: Add new task (enter to save, esc to dismiss)
  • e: Edit existing task (enter to save, esc to dismiss)
    • tab: Autocomplete suggested
  • x: Toggle task complete/incomplete
  • X: Complete and archive task immediately
  • A: Archive completed tasks to done.txt
  • D: Delete task
  • P: Postpone task (set due date tomorrow if task has existing due date)
  • f: Focus search field (enter to focus task list)
  • r: Reset search/Refresh task list
  • u: Open URL in focused task
    • If task has multiple URLs, press u followed by e.g. 2 to open the second URL
    • U Open all URLs in task
  • [1-9]: Display only tasks with priority A, B, C, D, E, F, G, H or I
    • 0: Reset display
  • SHIFT + [1-9]: Set priority A, B, C, D, E, F, G, H or I on focused task
    • SHIFT + 0: Remove priority from focused task
  • t: Toggle visibility of tasks with threshold in future
  • h: Toggle visibility of hidden tasks
  • q: Quit application

Configuration

This is optional.

  • Linux: ~/.config/todo-txt-tui/settings.conf
  • macOS: ~/Library/Application Support/todo-txt-tui/settings.conf

Settings (default):

[
    ["enableCompletionAndCreationDates", "true"],
    ["hideCompletionAndCreationDates", "true"], 
    ["placeCursorBeforeMetadataWhenEditingTasks", "false"],
    ["displayHiddenTasksByDefault", "false"],
    ["hideTasksWithThresholdDates", "true"]
]

Theme

This is optional.

  • Linux: ~/.config/todo-txt-tui/palette.conf
  • macOS: ~/Library/Application Support/todo-txt-tui/palette.conf

Theme (default):

[
    ["bold", "bold", ""],
    ["text", "", ""],
    ["priority_a", "light red", ""],
    ["priority_b", "brown", ""],
    ["priority_c", "light green", ""],
    ["priority_d", "light blue", ""],
    ["priority_e", "dark magenta", ""],
    ["context", "light magenta", ""],
    ["project", "yellow", ""],
    ["is_complete", "dark gray", ""],
    ["is_danger", "light red", ""],
    ["is_success", "light green", ""],
    ["is_link", "light blue", ""],
    ["heading_overdue", "light red,italics,bold", ""],
    ["heading_today", "light green,italics,bold", ""],
    ["heading_future", "default,italics,bold", ""]
]

Light theme:

The dark theme above should work just fine (text color and background adjusts to your terminal). You may however, want to change project color to e.g. ["project", "dark cyan", ""] since yellow on white can be hard to read.

See supported colors.

Installation

Make sure you have Python installed.

pip3 install todo-txt-tui

Troubleshooting

Mac users may have issues with their Python installation. See troubleshooting.

How to update

You will be notified if a new version is available, but you can update manually.

pip3 install --upgrade todo-txt-tui

Update notification

Usage

todo-txt-tui /path/to/todo.txt

Tip! Create an alias to speed things up. Example: alias todo="todo-txt-tui /path/to/todo.txt". Then you can simply type todo in your terminal and the app will start and open your preferred todo.txt list.

Additional commands

todo-txt-tui --version
todo-txt-tui --help

Original idea
Read more at todotxt.org. Gina Trapani originally came up with the idea. It has since been extended, e.g. with recurring tasks and other features.

More
See high level features overview and details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

todo-txt-tui-0.2.3.tar.gz (21.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

todo_txt_tui-0.2.3-py3-none-any.whl (20.2 kB view details)

Uploaded Python 3

File details

Details for the file todo-txt-tui-0.2.3.tar.gz.

File metadata

  • Download URL: todo-txt-tui-0.2.3.tar.gz
  • Upload date:
  • Size: 21.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.12

File hashes

Hashes for todo-txt-tui-0.2.3.tar.gz
Algorithm Hash digest
SHA256 ad0993275d8dce8c0c11ac310c6dc182a054968a28eea6a5ef345f01309bf115
MD5 d0f72a7e8dcf45e508b6503f72a177c9
BLAKE2b-256 0a5a8ce2b57ba49c4d96680de613a691c898921e9f5257ff851b815643b5df88

See more details on using hashes here.

File details

Details for the file todo_txt_tui-0.2.3-py3-none-any.whl.

File metadata

  • Download URL: todo_txt_tui-0.2.3-py3-none-any.whl
  • Upload date:
  • Size: 20.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.12

File hashes

Hashes for todo_txt_tui-0.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 ef9c676d251b8c573eab4e22a7b341dd443c299059986cd728456d98a1f129cb
MD5 2c6dcbef25dab0f16406f96a113441e1
BLAKE2b-256 efd4acc2b4c60a911cf74ebc62b7161463d2b4dd88be568f1bf4cb02b0339b6b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page