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.2.tar.gz (21.6 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.2-py3-none-any.whl (20.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: todo-txt-tui-0.2.2.tar.gz
  • Upload date:
  • Size: 21.6 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.2.tar.gz
Algorithm Hash digest
SHA256 1dec13cd8df7f9e81d0ed21c244b6365c53fec93d2e808ad4c89d66d63a10d6e
MD5 87d9c2d4749dc944df0b7803df581f0e
BLAKE2b-256 0a87b7811f5bf29334a4b50862b09965ccc84f70a78c400bbb9f2ca586d40ca9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: todo_txt_tui-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 20.0 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 b29d551eea715ea4eafe59307e25351b6a61e9c998c622c815a7f7e6203333fa
MD5 5b98f88ad45bd15ab99e851ee8a13a75
BLAKE2b-256 c136229a3fbcb80ad21652636b66cd19c2faf4c6789761bae8460d22c2a34637

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