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
  • 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.5.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.5-py3-none-any.whl (20.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: todo-txt-tui-0.2.5.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.5.tar.gz
Algorithm Hash digest
SHA256 d18c6f24a1d0d0bf1bc7f5b9bf666f029cd95fd7356a4ff4b19c3bdfd2fa96dc
MD5 f1f12a71cf34225f969faf2bc3953669
BLAKE2b-256 d55d15aabcca9221e140a07b5ec56f0414e8e8a0bafc9763f0d3bd789278e747

See more details on using hashes here.

File details

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

File metadata

  • Download URL: todo_txt_tui-0.2.5-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.5-py3-none-any.whl
Algorithm Hash digest
SHA256 3381517a6699966b3f1878338d519d967f7a93af465145279d8cd1ffa62b6bbc
MD5 a98f34145d473b293caec5a73cb40537
BLAKE2b-256 105ebf4e4b42b73cbc226881ced23c9d7f817716ed8e4d9f3767e7e6fcbba2f2

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