Cursedtodo is a TUI todo manager written in Python using (n)curses library
Project description
CursedTodo
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
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]]
name= "Default"
path = "~/.local/share/cursedtodos/calendar/default" # 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
[keybindings]
# general
up = "k"
down = "j"
new = "n"
delete = "x"
edit = "e"
# todo list
mark_as_done = " "
show_completed = "c"
change_order = "o"
# 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:
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cursedtodo-0.1.1.tar.gz.
File metadata
- Download URL: cursedtodo-0.1.1.tar.gz
- Upload date:
- Size: 19.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: pdm/2.22.3 CPython/3.13.2 Linux/6.8.0-1021-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
148cca570bc872320e9a4ba3e328f864f22823fd920b6d1fd5d7ed97a7956169
|
|
| MD5 |
cb3228fe83ac393ff6190aebc18544bb
|
|
| BLAKE2b-256 |
4fc2f2a22067bbc1bdb3c25fce66472f7e63605e9eb5e319198832278a506130
|
File details
Details for the file cursedtodo-0.1.1-py3-none-any.whl.
File metadata
- Download URL: cursedtodo-0.1.1-py3-none-any.whl
- Upload date:
- Size: 32.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: pdm/2.22.3 CPython/3.13.2 Linux/6.8.0-1021-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cc88b049815aff931086e120f7525af9fe86dacf95a1dbe90b51c40319c0b0e1
|
|
| MD5 |
9cd34db1b675b4e313390205edc911db
|
|
| BLAKE2b-256 |
d91fd4b6401ca59577bd87cd2e7a6f77cf7f316b023f7a71a65a6ed0968d2504
|