Skip to main content

Cursedtodo is a TUI todo manager written in Python using (n)curses library

Project description

CursedTodo

GitHub Release GitHub License GitHub Actions Workflow Status

CursedTodo is a minimalist, terminal base todo manager storing tasks as .ics files for storage. It can be used with vdirsyncer for CalDAV synchronization. Efforts are made to support most of RFC-5545 and to be compatible with most other projects. It has been tested with vdirsyncer, Nextcloud Tasks and Tasks.org.

Built in Python using the Curses library Cursedtodo has only one direct dependency: ics.

Demo

demo of cursedtodo

Quick look at Cursedtodo in action.

Roadmap

Short term

  • Basic todo list (ordered by priority, show/hide completed)
  • Todo creation, modification, and deletion
  • Arch aur package
  • Other distributions packages
  • Keymaps customization
  • Category filtering
  • Basic CLI for adding todos

Long term

  • Subtasks and linked todos
  • Search

Will not be implemented

  • Mouse support
  • Windows support (PR accepted)

Usage

pip install cursedtodo

Cursedtodo will generate a config.toml files in $XDG_CONFIG_HOME/cursedtodo/ at first start. Keybinds are based on Vim hjkl for movement.

Here is an example config.toml:

# Calendars configuration
[[calendars]]
name = "Personal"
path = "~/.local/share/cursedtodos/calendar/personal" # should be something like ~/.local/share/vdirsyncer/calendar/personal if you are using vdirsyncer
# available colors : black, red, green, yellow, blue, magenta, cyan, white
color = "blue"
default = true

[[calendars]]
name= "Work"
path = "~/.local/share/cursedtodos/calendar/work" # should be something like ~/.local/share/vdirsyncer/calendar/work if you are using vdirsyncer
color = "green"
default = false

# UI configuration
[ui]
window_name = "Todos"
show_footer_keybindings = true
select_first = true
rounded_borders = true
date_format = "%m/%d/%y %H:%M:%S"
category_colors = true
confirm_mark_as_done = true

# Columns configuration
[[columns]]
property = "calendar.name"
width = 10

[[columns]]
property = "summary"
width = 30

[[columns]]
property = "priority"
width = 15

[[columns]]
property = "due"
width = 25

[[columns]]
property = "categories"
width = 30

[!IMPORTANT]
Cursedtodo is still in early development, expect some bugs and possibly breaking changes to the config file. Please backup your data regularly.

Contributing

We welcome contributions! If you find a bug, have a feature request, or want to improve the project, feel free to open an issue or submit a pull request.

For discussions and suggestions, check out the [issues][https://github.com/FLchs/cursedtodo/issues] page.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Alternatives

Projects with similar goals:

  • Todoman - CLI-based todo manager using .ics
  • Calcurse Terminal-based calendar with a simple built-in todo list
  • Calcure A personal calendar and task manager that supports .ics imports (but not currently support write or export)

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

cursedtodo-0.0.1.tar.gz (18.2 kB view details)

Uploaded Source

Built Distribution

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

cursedtodo-0.0.1-py3-none-any.whl (31.5 kB view details)

Uploaded Python 3

File details

Details for the file cursedtodo-0.0.1.tar.gz.

File metadata

  • Download URL: cursedtodo-0.0.1.tar.gz
  • Upload date:
  • Size: 18.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: pdm/2.22.3 CPython/3.13.1 Linux/6.8.0-1020-azure

File hashes

Hashes for cursedtodo-0.0.1.tar.gz
Algorithm Hash digest
SHA256 5a35b11a861561a6c8873f2bd4f563766cb2f4d04215b100effe1fcc64f19183
MD5 34e43d03f1cde9410d812dcd526baa65
BLAKE2b-256 5487941f51dbaf87cae9238f1957cd48add373231e4004786ce38390f8ced589

See more details on using hashes here.

File details

Details for the file cursedtodo-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: cursedtodo-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 31.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: pdm/2.22.3 CPython/3.13.1 Linux/6.8.0-1020-azure

File hashes

Hashes for cursedtodo-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 4df3aa367b6119839e5c51b85d179b1e105cc5e90591412a2f40f347d396fa69
MD5 a69989f0da228d532f2c9d53a19f829c
BLAKE2b-256 baf9bd1c1d7a7cb5a217231dd6250ec0a4c56c0b5c58b9e0e29a3987369ec815

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