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

Uploaded Python 3

File details

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

File metadata

  • Download URL: todo-txt-tui-0.2.6.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.6.tar.gz
Algorithm Hash digest
SHA256 5e74c60b2514aaa59dbf0dcd4b5d6648fa7523eb2d85870ef61044db0de1841b
MD5 bbf752badcfbc80e8d5d8bab07da5a0d
BLAKE2b-256 b0554a7ec1685c30e7e0b1c66640d5bd31d9ecbed0816f038ead7d2e85240053

See more details on using hashes here.

File details

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

File metadata

  • Download URL: todo_txt_tui-0.2.6-py3-none-any.whl
  • Upload date:
  • Size: 20.4 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.6-py3-none-any.whl
Algorithm Hash digest
SHA256 bada9c913fde91f22f616eafa1ccdc8e1744496108aebc8bd1bddd456fe2e551
MD5 4c42d349a55173b68189fdcf99fa91b9
BLAKE2b-256 c22fc6676b485d420b37a00ffff5b81d368c4a460b31fe508b4c900d3caf910c

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