Skip to main content

A powerful yet easy-to-use todo TUI

Project description

todoism

A powerful yet easy-to-use todo TUI

Screenshots

screenshot screenshot-help

Highlights

  • Simple, intuitive interface
  • Mouse support: click & scroll
  • Easy task search
  • Customizable: theme, sorting, and more
  • Common Keyboard shortcuts support for editing
  • Vim-like commands available for convenience

Install and use

  • Install: pip install todoism
  • Run: todoism or todo
  • Update: pip install todoism --upgrade
  • Use: Invoke help message using command :help to see commonly used operations and commands

[!NOTE] Some terminals does not support mouse click or strike through effect. Ptyxis (new default terminal for GNOME 47) does not fully support strikethrough effect. Ghostty does not has good support for bold text. You can turn them off in preference panel (open with :pref as specified in the help message)

Keycode recording

When you first start todoism, you'll be prompted to record key combinations for text navigation.

  • CTRL + LEFT: Move cursor one word left when editing text
  • CTRL + RIGHT: Move cursor one word right when editing text
  • CTRL + SHIFT + LEFT: Select text from cursor position to one word left
  • CTRL + SHIFT + RIGHT: Select text from cursor position to one word right
  • ALT + LEFT:
    • Move cursor to the beginning of the text
    • Jump to top task/category
  • ALT + RIGHT:
    • Move cursor to the end of the text
    • Jump to bottom task/category

[!NOTE] Some terminals like Ghostty and kitty may have built-in key bindings that conflict with the above. You need to disable them before recording.

Develop

  • Run with docker in dev mode with test files (run in project root):

    1. Build docker image: docker build -t ubuntu-todoism .
    2. Run ./test/todocker.sh
    • Add --profile to enable profiling
  • Or run python -m todoism --dev directly (for using debugger)

    • Add --profile to enable profiling

Flag --dev and --profile are not available in PyPI installation

  • Automated integration test (Experimental):

    1. Install wmctrl with your package manager (for auto window focus)
    2. Run python test/integration.py in project root
    • Add --profile to enable profiling
    1. Read the instructions printed in the terminal carefully
  • Normal Configuration and data files are located in ~/.todoism/. Test ones are in test/.todoism

[!CAUTION] Todoism is currently under active development and backwards compatibility is not guaranteed as I refine features and data structures. Automatic data migration (tasks, categories, settings) between versions may not be fully supported. Please backup your data when needed. v1.21 and lower versions are perticularly deprecated!

Contribute

Issues and PRs are welcome! Todoism is built from scratch with curses library. Please refer to the curses docs and how-to to get started.

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

todoism-1.21.9.post3.tar.gz (38.8 kB view details)

Uploaded Source

Built Distribution

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

todoism-1.21.9.post3-py3-none-any.whl (42.4 kB view details)

Uploaded Python 3

File details

Details for the file todoism-1.21.9.post3.tar.gz.

File metadata

  • Download URL: todoism-1.21.9.post3.tar.gz
  • Upload date:
  • Size: 38.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for todoism-1.21.9.post3.tar.gz
Algorithm Hash digest
SHA256 21f3ddcf3962bf47771a97fd3cdc03c38549b958841532837f0944449799fe35
MD5 d4ced61f389b3dbf1da0c206c55c0c07
BLAKE2b-256 870c7afbc4b011a057c6d4bd3659b9944d85abd0abd36e5c100e0e910f421fd4

See more details on using hashes here.

File details

Details for the file todoism-1.21.9.post3-py3-none-any.whl.

File metadata

  • Download URL: todoism-1.21.9.post3-py3-none-any.whl
  • Upload date:
  • Size: 42.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for todoism-1.21.9.post3-py3-none-any.whl
Algorithm Hash digest
SHA256 694e538e3ee696437aa27f7b96e2bdd2443bd8f858530e2243143ebda53d6c96
MD5 8e59324c12c6636442a854fced00bcbb
BLAKE2b-256 de0d5cfa34a860d1aaaddb1a5ad7adfecc1270aa38e6d6f630b5eb46c54d5990

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