Skip to content

keegz94/todoc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ToDo.C


A lightweight and blazingly fast CLI for managing todo.txt tasks, written in C. Created as a first project/learning exercise and largely inspired by the todo.txt-CLI program. Aside from as a way to learn programming I also wanted something that felt a bit less clunky + some aesthetic changes.

  • Fully sticks to the todo.txt format specs.
  • Highly portable with zero dependencies.
  • todo.txt-CLI add-ons as basic functions such as auto-prepending of dates and task recurrence
  • An additional TUI mode for bulk task management
  • Relatively simple code (I think?)

Features

Core functionality

Tasks can be added from the command line either by prompt, or directly by input. demo-view tasks

Automatically parses and highlights the basic todo.txt tags:

  • Priorites (A) (B) (C), @context, +project, YYYY-MM-DD dates

  • Quick priority editing Instantly alter, add, or remove priorities as needed. demo-pri

  • Sorting and filtering Can be changed to sort tasks by different tags by a single use, or by default, and can filter only specific terms or tags you want to see.

  • XDG-compliant By default, ToDo.C will use $XDG_DATA_HOME for the todo.txt and done.txt files, and $XDG_CONFIG_HOME for the todorc configuration file

Example usage

todoc ls

todoc add "(A) Stop procrastinating the +todoc readme"

todoc do 3

todoc depri 2

todoc --help

demo-add task

Additional features

Also has built in support for due:date tag (sortable) and a 'recurrence' tag rec:xy.

Recurring tasks Using the rec: tag at the end of the task allows it to be re-created upon completion.

  • New due-dates can be set as either the duration from the date-of-completion (Good for say, personal tasks such as exercising)
  • Can also be set as the duration from the original due-date (Good for external calendar-based things, e.g. monthly payments, weekly events/deadlines etc)

due:2026-01-01 rec:1w

Completed 2026-01-03, now due:2026-01-08

due:2026-01-01 rec:1w+

Completed 2026-01-03, now due 2026-01-10

demo-recurrence

Bonus: TUI Mode

Can be accessed if todoc is used without any additional arguments.

While fiddling around with the terminal escape sequences, I accidentally ended up making a usable TUI for the program.

demo-tui

  • Kept it simple and functional, still does not require any other dependency
  • Can update higher quantities of tasks without repetitive CLI commands

Configuration

  • Change/remove highlighting for all tags however you like
  • Automatically prepend the creation date to new tasks
  • Change the default task sorting
  • Disable confirmation prompts

A copy of todorc can be grabbed from source folder -> (todorc).

Installation

Clone and build:

git clone https://github.com/keegz94/todoc.git
cd todoc
make && sudo make install

Uninstall

To remove, simply remove the binary, data directory and config file/directory

$HOME/$XDG_DATA_HOME/todo/todo.txt

$HOME/$XDG_DATA_HOME/todo/done.txt

$HOME/$XDG_CONFIG_HOME/todo/todorc

Acknowledgments/Credits

  • The original todo.txt-CLI program for being pretty effective against ADHD (imo)

License

Project licensed under the MIT License.

About

Simple, fast todo.txt CLI and TUI tool, written in C.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors