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: Also known as deferred tasks. See details.
  • 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: Can be enabled or disabled in settings
  • 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: Yes
  • Hidden tasks: Default visibility can be set in settings and toggled with t
  • 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 projects and contexts
  • E: Edit existing task, but place cursor at the end of task text component instead of end of entire task
  • 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
  • SHIFT + [1-9]: Display only tasks with priority A, B, C, D, E, F, G, H or I
    • SHIFT + 0: Reset display
  • 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.7.tar.gz (22.0 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.7-py3-none-any.whl (20.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: todo-txt-tui-0.2.7.tar.gz
  • Upload date:
  • Size: 22.0 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.7.tar.gz
Algorithm Hash digest
SHA256 3a16097da8d3e6e424059d7e377fb62175d02ea4fb6c05fc5a54016402f686fe
MD5 9380506d77aeff65f446df1e439afd7d
BLAKE2b-256 48384b589da88d4c574be66a2201a867d9b5682d9b3be9d9e28f88d31fd13ab6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: todo_txt_tui-0.2.7-py3-none-any.whl
  • Upload date:
  • Size: 20.5 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.7-py3-none-any.whl
Algorithm Hash digest
SHA256 45a4ee6ba54ff23eea53fc7490c104c840d09db89d56bfa1788555239a3bf9fb
MD5 847b8c04de92d5cb191cea049ac4f61d
BLAKE2b-256 147541f6d99cd021cdb3c037f9615454b7af41229acee570279611fd4784efc5

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